home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 01 - 1984 & 1985 / 01.02 Jan 85.sit / 01.02 Jan 85 / C Vol. 1 No. 2 / DemoWindow.C < prev    next >
MacBinary  |  1985-08-17  |  18.3 KB  |  [TEXT/EDIT]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Aug 17 09:04:38 1985, modified Sat Aug 17 09:04:38 1985, creator Macintosh Edit, type ASCII, 17997 bytes "DemoWindow.C" , at 0x46cd 490 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[EDIT]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 44 65 6d 6f 57 69 | 6e 64 6f 77 2e 43 00 00 |..DemoWi|ndow.C..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......|
|00000050| 00 00 00 00 00 46 4d 00 | 00 01 ea 99 8a 48 e6 99 |.....FM.|.....H..|
|00000060| 8a 48 e6 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.H......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 b9 e5 00 00 |........|........|
|00000080| 2f 2a 0d 20 2a 20 20 44 | 65 6d 6f 57 69 6e 64 6f |/*. * D|emoWindo|
|00000090| 77 2e 43 20 2d 20 57 69 | 6e 64 6f 77 20 73 74 75 |w.C - Wi|ndow stu|
|000000a0| 66 66 20 66 6f 72 20 4d | 61 63 20 43 20 44 65 6d |ff for M|ac C Dem|
|000000b0| 6f 0d 20 2a 0d 20 2a 09 | 09 42 6f 62 20 44 65 6e |o. *. *.|.Bob Den|
|000000c0| 6e 79 0d 20 2a 09 09 4f | 63 74 6f 62 65 72 2c 20 |ny. *..O|ctober, |
|000000d0| 31 39 38 34 0d 20 2a 2f | 0d 0d 23 69 6e 63 6c 75 |1984. */|..#inclu|
|000000e0| 64 65 20 3c 44 65 6d 6f | 2e 48 3e 0d 0d 73 74 61 |de <Demo|.H>..sta|
|000000f0| 74 69 63 20 69 6e 74 20 | 70 65 6e 5f 64 6f 77 6e |tic int |pen_down|
|00000100| 20 3d 20 46 41 4c 53 45 | 3b 09 09 09 09 09 2f 2f | = FALSE|;.....//|
|00000110| 20 53 63 72 61 77 6c 20 | 70 65 6e 20 69 73 20 6e | Scrawl |pen is n|
|00000120| 6f 74 20 64 6f 77 6e 20 | 79 65 74 0d 73 74 61 74 |ot down |yet.stat|
|00000130| 69 63 20 50 6f 69 6e 74 | 20 70 6f 6c 64 20 3d 20 |ic Point| pold = |
|00000140| 7b 30 2c 30 7d 3b 09 09 | 09 09 09 09 2f 2f 20 53 |{0,0};..|....// S|
|00000150| 63 72 61 77 6c 20 70 65 | 6e 20 69 73 20 61 74 20 |crawl pe|n is at |
|00000160| 7b 30 2c 30 7d 0d 0d 2f | 2a 0d 20 2a 20 45 44 49 |{0,0}../|*. * EDI|
|00000170| 54 5f 57 49 4e 44 4f 57 | 28 29 20 2d 20 43 72 65 |T_WINDOW|() - Cre|
|00000180| 61 74 65 20 61 6e 20 22 | 65 64 69 74 20 77 69 6e |ate an "|edit win|
|00000190| 64 6f 77 22 20 77 69 74 | 68 20 61 6c 6c 20 6f 66 |dow" wit|h all of|
|000001a0| 20 74 68 65 20 75 73 75 | 61 6c 20 6a 75 6e 6b 0d | the usu|al junk.|
|000001b0| 20 2a 0d 20 2a 20 41 6c | 6c 6f 63 61 74 65 73 20 | *. * Al|locates |
|000001c0| 61 20 57 43 42 2c 20 63 | 72 65 61 74 65 73 20 74 |a WCB, c|reates t|
|000001d0| 68 65 20 77 69 6e 64 6f | 77 20 66 72 6f 6d 20 61 |he windo|w from a|
|000001e0| 20 72 65 73 6f 75 72 63 | 65 20 74 65 6d 70 6c 61 | resourc|e templa|
|000001f0| 74 65 2c 0d 20 2a 20 63 | 6f 6d 70 6c 65 74 65 20 |te,. * c|omplete |
|00000200| 77 69 74 68 20 73 63 72 | 6f 6c 6c 65 72 73 2c 20 |with scr|ollers, |
|00000210| 67 72 6f 77 20 62 6f 78 | 2c 20 67 6f 2d 61 77 61 |grow box|, go-awa|
|00000220| 79 20 62 6f 78 2c 20 65 | 74 63 2e 20 20 53 65 74 |y box, e|tc. Set|
|00000230| 73 0d 20 2a 20 74 68 65 | 20 77 69 6e 64 6f 77 20 |s. * the| window |
|00000240| 61 73 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 6f |as the c|urrent o|
|00000250| 6e 65 20 61 6e 64 20 61 | 63 74 69 76 61 74 65 73 |ne and a|ctivates|
|00000260| 20 69 74 2e 0d 20 2a 2f | 0d 65 64 69 74 5f 77 69 | it.. */|.edit_wi|
|00000270| 6e 64 6f 77 28 29 0d 09 | 7b 0d 09 52 65 63 74 20 |ndow()..|{..Rect |
|00000280| 76 69 65 77 5f 72 65 63 | 74 3b 09 09 09 09 09 09 |view_rec|t;......|
|00000290| 09 09 2f 2f 20 54 65 78 | 74 45 64 69 74 20 76 69 |..// Tex|tEdit vi|
|000002a0| 65 77 20 72 65 63 74 0d | 09 52 65 63 74 20 62 6f |ew rect.|.Rect bo|
|000002b0| 75 6e 64 73 5f 72 65 63 | 74 3b 09 09 09 09 09 09 |unds_rec|t;......|
|000002c0| 09 09 2f 2f 20 42 6f 75 | 6e 64 73 20 66 6f 72 20 |..// Bou|nds for |
|000002d0| 73 63 72 6f 6c 6c 65 72 | 73 0d 09 52 65 63 74 20 |scroller|s..Rect |
|000002e0| 64 65 73 74 5f 72 65 63 | 74 0d 09 52 65 63 74 20 |dest_rec|t..Rect |
|000002f0| 2a 70 72 3b 09 09 09 09 | 09 09 09 09 09 09 2f 2f |*pr;....|......//|
|00000300| 20 2d 2d 3e 20 70 6f 72 | 74 27 73 20 72 65 63 74 | --> por|t's rect|
|00000310| 0d 09 0d 09 64 65 73 74 | 5f 72 65 63 74 2e 74 6f |....dest|_rect.to|
|00000320| 70 20 3d 20 34 3b 09 09 | 09 09 09 09 09 2f 2f 20 |p = 4;..|.....// |
|00000330| 2a 2a 2a 20 54 45 4d 50 | 4f 52 41 52 59 20 2a 2a |*** TEMP|ORARY **|
|00000340| 2a 0d 09 64 65 73 74 5f | 72 65 63 74 2e 6c 65 66 |*..dest_|rect.lef|
|00000350| 74 20 3d 20 34 3b 0d 09 | 64 65 73 74 5f 72 65 63 |t = 4;..|dest_rec|
|00000360| 74 2e 62 6f 74 74 6f 6d | 20 3d 20 31 30 30 30 3b |t.bottom| = 1000;|
|00000370| 0d 09 64 65 73 74 5f 72 | 65 63 74 2e 72 69 67 68 |..dest_r|ect.righ|
|00000380| 74 20 3d 20 35 30 30 3b | 0d 09 0d 09 69 66 28 28 |t = 500;|....if((|
|00000390| 64 77 70 20 3d 20 28 73 | 74 72 75 63 74 20 77 63 |dwp = (s|truct wc|
|000003a0| 62 20 2a 29 67 65 74 5f | 77 63 62 28 29 29 20 3d |b *)get_|wcb()) =|
|000003b0| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return|
|000003c0| 3b 09 09 09 09 09 09 09 | 09 09 09 2f 2f 20 49 67 |;.......|...// Ig|
|000003d0| 6e 6f 72 65 20 69 66 20 | 6e 6f 20 6d 6f 72 65 20 |nore if |no more |
|000003e0| 57 43 42 27 73 0d 09 0d | 09 2f 2f 0d 09 2f 2f 20 |WCB's...|.//..// |
|000003f0| 54 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 73 65 |The foll|owing se|
|00000400| 74 73 20 75 70 20 74 68 | 65 20 77 69 6e 64 6f 77 |ts up th|e window|
|00000410| 27 73 20 62 61 73 69 63 | 20 64 69 6d 65 6e 73 69 |'s basic| dimensi|
|00000420| 6f 6e 73 20 61 6e 64 0d | 09 2f 2f 20 72 65 63 74 |ons and.|.// rect|
|00000430| 27 73 2e 20 20 45 61 63 | 68 20 77 69 6e 64 6f 77 |'s. Eac|h window|
|00000440| 20 73 74 61 72 74 73 20 | 6f 75 74 20 61 73 20 61 | starts |out as a|
|00000450| 20 72 65 73 6f 75 72 63 | 65 20 74 65 6d 70 6c 61 | resourc|e templa|
|00000460| 74 65 2c 20 62 75 74 0d | 09 2f 2f 20 61 74 20 74 |te, but.|.// at t|
|00000470| 68 69 73 20 70 6f 69 6e | 74 20 69 6e 20 74 68 65 |his poin|t in the|
|00000480| 20 70 72 6f 67 72 61 6d | 2c 20 79 6f 75 20 63 6f | program|, you co|
|00000490| 75 6c 64 20 66 69 64 64 | 6c 65 20 74 68 65 20 77 |uld fidd|le the w|
|000004a0| 69 6e 64 6f 77 20 2e 2e | 2e 0d 09 2f 2f 20 46 6f |indow ..|...// Fo|
|000004b0| 72 20 65 78 61 6d 70 6c | 65 2c 20 79 6f 75 20 63 |r exampl|e, you c|
|000004c0| 6f 75 6c 64 20 63 68 61 | 6e 67 65 20 69 74 27 73 |ould cha|nge it's|
|000004d0| 20 73 69 7a 65 20 6f 72 | 20 6c 6f 63 61 74 69 6f | size or| locatio|
|000004e0| 6e 2c 20 64 72 61 67 20 | 6f 72 0d 09 2f 2f 20 67 |n, drag |or..// g|
|000004f0| 72 6f 77 20 72 65 63 74 | 20 65 74 63 2e 20 20 54 |row rect| etc. T|
|00000500| 68 65 20 72 65 73 74 20 | 6f 66 20 74 68 65 20 63 |he rest |of the c|
|00000510| 6f 64 65 20 64 72 69 76 | 65 73 20 6f 66 66 20 6f |ode driv|es off o|
|00000520| 66 20 74 68 65 20 62 61 | 73 69 63 0d 09 2f 2f 20 |f the ba|sic..// |
|00000530| 77 69 6e 64 6f 77 20 64 | 69 6d 65 6e 73 69 6f 6e |window d|imension|
|00000540| 73 2e 0d 09 2f 2f 0d 09 | 64 77 70 2d 3e 77 70 20 |s...//..|dwp->wp |
|00000550| 3d 20 28 57 69 6e 64 6f | 77 50 74 72 29 23 47 65 |= (Windo|wPtr)#Ge|
|00000560| 74 4e 65 77 57 69 6e 64 | 6f 77 28 57 49 4e 44 4f |tNewWind|ow(WINDO|
|00000570| 57 5f 49 44 2c 20 30 2c | 20 2d 31 29 3b 09 2f 2f |W_ID, 0,| -1);.//|
|00000580| 20 47 65 74 20 61 20 63 | 6f 70 79 20 6f 66 20 74 | Get a c|opy of t|
|00000590| 68 65 20 77 69 6e 64 6f | 77 0d 09 23 53 65 74 57 |he windo|w..#SetW|
|000005a0| 54 69 74 6c 65 28 64 77 | 70 2d 3e 77 70 2c 20 22 |Title(dw|p->wp, "|
|000005b0| 5c 30 31 33 45 64 69 74 | 20 57 69 6e 64 6f 77 22 |\013Edit| Window"|
|000005c0| 29 3b 09 09 2f 2f 20 48 | 61 63 6b 20 74 68 65 20 |);..// H|ack the |
|000005d0| 74 69 74 6c 65 0d 09 23 | 53 65 74 52 65 63 74 28 |title..#|SetRect(|
|000005e0| 26 64 77 70 2d 3e 64 72 | 61 67 5f 72 65 63 74 2c |&dwp->dr|ag_rect,|
|000005f0| 20 34 2c 20 32 34 2c 20 | 35 30 38 2c 20 33 33 38 | 4, 24, |508, 338|
|00000600| 29 3b 09 2f 2f 20 46 69 | 78 65 64 20 76 61 6c 75 |);.// Fi|xed valu|
|00000610| 65 73 20 69 6e 20 65 78 | 61 6d 70 6c 65 0d 09 23 |es in ex|ample..#|
|00000620| 53 65 74 52 65 63 74 28 | 26 64 77 70 2d 3e 67 72 |SetRect(|&dwp->gr|
|00000630| 6f 77 5f 72 65 63 74 2c | 20 31 30 30 2c 20 36 30 |ow_rect,| 100, 60|
|00000640| 2c 20 35 31 32 2c 20 33 | 30 32 29 3b 0d 09 23 53 |, 512, 3|02);..#S|
|00000650| 65 74 50 6f 72 74 28 64 | 77 70 2d 3e 77 70 29 3b |etPort(d|wp->wp);|
|00000660| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 48 6f 6f 6b |........|.// Hook|
|00000670| 20 51 75 69 63 6b 44 72 | 61 77 20 75 70 20 74 6f | QuickDr|aw up to|
|00000680| 20 77 69 6e 64 6f 77 0d | 09 0d 09 2f 2f 0d 09 2f | window.|...//../|
|00000690| 2f 20 53 65 74 20 75 70 | 20 54 65 78 74 45 64 69 |/ Set up| TextEdi|
|000006a0| 74 20 69 6e 20 74 68 65 | 20 77 69 6e 64 6f 77 0d |t in the| window.|
|000006b0| 09 2f 2f 0d 09 2f 2f 20 | 46 6f 72 20 74 68 69 73 |.//..// |For this|
|000006c0| 20 70 72 6f 67 72 61 6d | 2c 20 74 68 65 20 64 65 | program|, the de|
|000006d0| 73 74 52 65 63 74 20 69 | 73 20 61 6e 20 61 72 62 |stRect i|s an arb|
|000006e0| 69 74 72 61 72 79 20 73 | 69 7a 65 0d 09 2f 2f 20 |itrary s|ize..// |
|000006f0| 6c 61 72 67 65 20 65 6e | 6f 75 67 68 20 74 6f 20 |large en|ough to |
|00000700| 64 65 6d 6f 6e 73 74 72 | 61 74 65 20 68 6f 72 69 |demonstr|ate hori|
|00000710| 7a 6f 6e 74 61 6c 20 61 | 6e 64 20 76 65 72 74 69 |zontal a|nd verti|
|00000720| 63 61 6c 20 0d 09 2f 2f | 20 73 63 72 6f 6c 6c 69 |cal ..//| scrolli|
|00000730| 6e 67 2e 20 20 54 68 65 | 20 76 69 65 77 52 65 63 |ng. The| viewRec|
|00000740| 74 20 69 73 20 73 65 74 | 20 74 6f 20 74 68 65 20 |t is set| to the |
|00000750| 77 69 6e 64 6f 77 27 73 | 20 70 6f 72 74 52 65 63 |window's| portRec|
|00000760| 74 0d 09 2f 2f 20 6c 65 | 73 73 20 34 20 70 69 78 |t..// le|ss 4 pix|
|00000770| 65 6c 73 20 22 62 6c 65 | 65 64 22 20 6f 6e 20 74 |els "ble|ed" on t|
|00000780| 68 65 20 6c 65 66 74 20 | 73 69 64 65 20 61 6e 64 |he left |side and|
|00000790| 20 31 35 20 70 69 78 65 | 6c 73 20 6f 6e 20 74 68 | 15 pixe|ls on th|
|000007a0| 65 0d 09 2f 2f 20 72 69 | 67 68 74 20 61 6e 64 20 |e..// ri|ght and |
|000007b0| 62 6f 74 74 6f 6d 20 66 | 6f 72 20 74 68 65 20 73 |bottom f|or the s|
|000007c0| 63 72 6f 6c 6c 20 62 61 | 72 73 20 28 74 68 61 6e |croll ba|rs (than|
|000007d0| 6b 73 20 74 6f 20 63 61 | 6c 63 5f 76 72 65 63 74 |ks to ca|lc_vrect|
|000007e0| 28 29 29 2e 0d 09 2f 2f | 0d 09 70 72 20 3d 20 26 |())...//|..pr = &|
|000007f0| 28 28 64 77 70 2d 3e 77 | 70 29 2d 3e 70 6f 72 74 |((dwp->w|p)->port|
|00000800| 52 65 63 74 29 3b 0d 09 | 63 61 6c 63 5f 76 72 65 |Rect);..|calc_vre|
|00000810| 63 74 28 70 72 2c 20 26 | 76 69 65 77 5f 72 65 63 |ct(pr, &|view_rec|
|00000820| 74 29 3b 09 09 09 2f 2f | 20 43 61 6c 63 75 6c 61 |t);...//| Calcula|
|00000830| 74 65 20 76 69 65 77 52 | 65 63 74 0d 09 64 77 70 |te viewR|ect..dwp|
|00000840| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 20 3d 20 28 54 |->te_han|dle = (T|
|00000850| 45 48 61 6e 64 6c 65 29 | 23 54 45 4e 65 77 28 26 |EHandle)|#TENew(&|
|00000860| 64 65 73 74 5f 72 65 63 | 74 2c 20 26 76 69 65 77 |dest_rec|t, &view|
|00000870| 5f 72 65 63 74 29 3b 0d | 09 64 77 70 2d 3e 74 65 |_rect);.|.dwp->te|
|00000880| 5f 6f 72 69 67 69 6e 2e | 76 20 3d 20 64 77 70 2d |_origin.|v = dwp-|
|00000890| 3e 74 65 5f 6f 72 69 67 | 69 6e 2e 68 20 3d 20 34 |>te_orig|in.h = 4|
|000008a0| 3b 0d 0d 09 2f 2f 0d 09 | 2f 2f 20 41 64 64 20 74 |;...//..|// Add t|
|000008b0| 68 65 20 73 63 72 6f 6c | 6c 20 62 61 72 73 2e 20 |he scrol|l bars. |
|000008c0| 44 79 6e 61 6d 69 63 61 | 6c 6c 79 20 63 61 6c 63 |Dynamica|lly calc|
|000008d0| 75 6c 61 74 65 64 20 66 | 72 6f 6d 20 77 69 6e 64 |ulated f|rom wind|
|000008e0| 6f 77 0d 09 2f 2f 20 64 | 69 6d 65 6e 73 69 6f 6e |ow..// d|imension|
|000008f0| 73 2e 20 20 4e 6f 74 65 | 20 74 68 61 74 20 74 68 |s. Note| that th|
|00000900| 65 20 63 6f 6e 74 72 6f | 6c 73 20 6d 75 73 74 20 |e contro|ls must |
|00000910| 6f 76 65 72 6c 61 70 20 | 74 68 65 20 0d 09 2f 2f |overlap |the ..//|
|00000920| 20 77 69 6e 64 6f 77 20 | 62 6f 75 6e 64 61 72 69 | window |boundari|
|00000930| 65 73 2e 20 20 53 74 61 | 72 74 20 63 6f 6e 74 72 |es. Sta|rt contr|
|00000940| 6f 6c 73 20 6f 75 74 20 | 68 69 64 64 65 6e 2c 20 |ols out |hidden, |
|00000950| 61 63 74 69 76 61 74 65 | 20 77 69 6c 6c 0d 09 2f |activate| will../|
|00000960| 2f 20 64 72 61 77 20 74 | 68 65 6d 2e 0d 09 2f 2f |/ draw t|hem...//|
|00000970| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 74 6f |..bounds|_rect.to|
|00000980| 70 20 3d 20 70 72 2d 3e | 74 6f 70 20 2d 20 31 3b |p = pr->|top - 1;|
|00000990| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 6c 65 |..bounds|_rect.le|
|000009a0| 66 74 20 3d 20 70 72 2d | 3e 72 69 67 68 74 20 2d |ft = pr-|>right -|
|000009b0| 20 31 35 3b 0d 09 62 6f | 75 6e 64 73 5f 72 65 63 | 15;..bo|unds_rec|
|000009c0| 74 2e 62 6f 74 74 6f 6d | 20 3d 20 70 72 2d 3e 62 |t.bottom| = pr->b|
|000009d0| 6f 74 74 6f 6d 20 2d 20 | 31 34 3b 0d 09 62 6f 75 |ottom - |14;..bou|
|000009e0| 6e 64 73 5f 72 65 63 74 | 2e 72 69 67 68 74 20 3d |nds_rect|.right =|
|000009f0| 20 70 72 2d 3e 72 69 67 | 68 74 20 2b 20 31 3b 0d | pr->rig|ht + 1;.|
|00000a00| 09 64 77 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 20 |.dwp->vs|_handle |
|00000a10| 3d 20 28 43 6f 6e 74 72 | 6f 6c 48 61 6e 64 6c 65 |= (Contr|olHandle|
|00000a20| 29 23 4e 65 77 43 6f 6e | 74 72 6f 6c 28 64 77 70 |)#NewCon|trol(dwp|
|00000a30| 2d 3e 77 70 2c 20 26 62 | 6f 75 6e 64 73 5f 72 65 |->wp, &b|ounds_re|
|00000a40| 63 74 2c 0d 09 09 09 09 | 09 09 09 09 22 22 2c 20 |ct,.....|...."", |
|00000a50| 54 52 55 45 2c 0d 09 09 | 09 09 09 09 09 09 64 65 |TRUE,...|......de|
|00000a60| 73 74 5f 72 65 63 74 2e | 74 6f 70 2c 20 64 65 73 |st_rect.|top, des|
|00000a70| 74 5f 72 65 63 74 2e 74 | 6f 70 2c 20 64 65 73 74 |t_rect.t|op, dest|
|00000a80| 5f 72 65 63 74 2e 62 6f | 74 74 6f 6d 2c 0d 09 09 |_rect.bo|ttom,...|
|00000a90| 09 09 09 09 09 09 73 63 | 72 6f 6c 6c 42 61 72 50 |......sc|rollBarP|
|00000aa0| 72 6f 63 2c 20 31 29 3b | 0d 09 23 56 61 6c 69 64 |roc, 1);|..#Valid|
|00000ab0| 52 65 63 74 28 26 62 6f | 75 6e 64 73 5f 72 65 63 |Rect(&bo|unds_rec|
|00000ac0| 74 29 3b 0d 0d 09 62 6f | 75 6e 64 73 5f 72 65 63 |t);...bo|unds_rec|
|00000ad0| 74 2e 74 6f 70 20 3d 20 | 70 72 2d 3e 62 6f 74 74 |t.top = |pr->bott|
|00000ae0| 6f 6d 20 2d 20 31 35 3b | 0d 09 62 6f 75 6e 64 73 |om - 15;|..bounds|
|00000af0| 5f 72 65 63 74 2e 6c 65 | 66 74 20 3d 20 70 72 2d |_rect.le|ft = pr-|
|00000b00| 3e 6c 65 66 74 20 2d 20 | 31 3b 0d 09 62 6f 75 6e |>left - |1;..boun|
|00000b10| 64 73 5f 72 65 63 74 2e | 62 6f 74 74 6f 6d 20 3d |ds_rect.|bottom =|
|00000b20| 20 70 72 2d 3e 62 6f 74 | 74 6f 6d 20 2b 20 31 3b | pr->bot|tom + 1;|
|00000b30| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 72 69 |..bounds|_rect.ri|
|00000b40| 67 68 74 20 3d 20 70 72 | 2d 3e 72 69 67 68 74 20 |ght = pr|->right |
|00000b50| 2d 20 31 34 3b 0d 09 64 | 77 70 2d 3e 68 73 5f 68 |- 14;..d|wp->hs_h|
|00000b60| 61 6e 64 6c 65 20 3d 20 | 28 43 6f 6e 74 72 6f 6c |andle = |(Control|
|00000b70| 48 61 6e 64 6c 65 29 23 | 4e 65 77 43 6f 6e 74 72 |Handle)#|NewContr|
|00000b80| 6f 6c 28 64 77 70 2d 3e | 77 70 2c 20 26 62 6f 75 |ol(dwp->|wp, &bou|
|00000b90| 6e 64 73 5f 72 65 63 74 | 2c 0d 09 09 09 09 09 09 |nds_rect|,.......|
|00000ba0| 09 09 22 22 2c 20 54 52 | 55 45 2c 0d 09 09 09 09 |.."", TR|UE,.....|
|00000bb0| 09 09 09 09 64 65 73 74 | 5f 72 65 63 74 2e 6c 65 |....dest|_rect.le|
|00000bc0| 66 74 2c 20 64 65 73 74 | 5f 72 65 63 74 2e 6c 65 |ft, dest|_rect.le|
|00000bd0| 66 74 2c 20 64 65 73 74 | 5f 72 65 63 74 2e 72 69 |ft, dest|_rect.ri|
|00000be0| 67 68 74 2c 0d 09 09 09 | 09 09 09 09 09 73 63 72 |ght,....|.....scr|
|00000bf0| 6f 6c 6c 42 61 72 50 72 | 6f 63 2c 20 31 29 3b 0d |ollBarPr|oc, 1);.|
|00000c00| 09 23 56 61 6c 69 64 52 | 65 63 74 28 26 62 6f 75 |.#ValidR|ect(&bou|
|00000c10| 6e 64 73 5f 72 65 63 74 | 29 3b 0d 0d 09 2f 2f 0d |nds_rect|);...//.|
|00000c20| 09 2f 2f 20 46 69 6e 61 | 6c 6c 79 2c 20 64 72 61 |.// Fina|lly, dra|
|00000c30| 77 20 69 6e 20 74 68 65 | 20 22 67 72 6f 77 20 69 |w in the| "grow i|
|00000c40| 63 6f 6e 22 0d 09 2f 2f | 0d 09 23 44 72 61 77 47 |con"..//|..#DrawG|
|00000c50| 72 6f 77 49 63 6f 6e 28 | 64 77 70 2d 3e 77 70 29 |rowIcon(|dwp->wp)|
|00000c60| 3b 0d 09 6e 5f 77 69 6e | 64 6f 77 73 2b 2b 3b 0d |;..n_win|dows++;.|
|00000c70| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 53 43 52 41 57 4c |.}../*. |* SCRAWL|
|00000c80| 5f 57 49 4e 44 4f 57 20 | 2d 20 43 72 65 61 74 65 |_WINDOW |- Create|
|00000c90| 20 61 20 22 73 63 72 61 | 77 6c 22 20 77 69 6e 64 | a "scra|wl" wind|
|00000ca0| 6f 77 20 0d 20 2a 2f 0d | 73 63 72 61 77 6c 5f 77 |ow . */.|scrawl_w|
|00000cb0| 69 6e 64 6f 77 28 29 0d | 09 7b 0d 09 69 66 28 28 |indow().|.{..if((|
|00000cc0| 64 77 70 20 3d 20 28 73 | 74 72 75 63 74 20 77 63 |dwp = (s|truct wc|
|00000cd0| 62 20 2a 29 67 65 74 5f | 77 63 62 28 29 29 20 3d |b *)get_|wcb()) =|
|00000ce0| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return|
|00000cf0| 3b 09 09 09 09 09 09 09 | 09 09 09 2f 2f 20 49 67 |;.......|...// Ig|
|00000d00| 6e 6f 72 65 20 69 66 20 | 6e 6f 20 6d 6f 72 65 20 |nore if |no more |
|00000d10| 57 43 42 27 73 0d 09 2f | 2f 0d 09 2f 2f 20 53 65 |WCB's../|/..// Se|
|00000d20| 65 20 63 6f 6d 6d 65 6e | 74 73 20 61 62 6f 76 65 |e commen|ts above|
|00000d30| 20 2e 2e 2e 0d 09 2f 2f | 0d 09 64 77 70 2d 3e 77 | .....//|..dwp->w|
|00000d40| 70 20 3d 20 28 57 69 6e | 64 6f 77 50 74 72 29 23 |p = (Win|dowPtr)#|
|00000d50| 47 65 74 4e 65 77 57 69 | 6e 64 6f 77 28 57 49 4e |GetNewWi|ndow(WIN|
|00000d60| 44 4f 57 5f 49 44 2c 20 | 30 2c 20 2d 31 29 3b 09 |DOW_ID, |0, -1);.|
|00000d70| 2f 2f 20 47 65 74 20 61 | 20 63 6f 70 79 20 6f 66 |// Get a| copy of|
|00000d80| 20 74 68 65 20 77 69 6e | 64 6f 77 0d 09 23 53 65 | the win|dow..#Se|
|00000d90| 74 57 54 69 74 6c 65 28 | 64 77 70 2d 3e 77 70 2c |tWTitle(|dwp->wp,|
|00000da0| 20 22 5c 30 31 35 53 63 | 72 61 77 6c 20 57 69 6e | "\015Sc|rawl Win|
|00000db0| 64 6f 77 22 29 3b 09 09 | 2f 2f 20 48 61 63 6b 20 |dow");..|// Hack |
|00000dc0| 74 68 65 20 74 69 74 6c | 65 0d 09 23 53 65 74 52 |the titl|e..#SetR|
|00000dd0| 65 63 74 28 26 64 77 70 | 2d 3e 64 72 61 67 5f 72 |ect(&dwp|->drag_r|
|00000de0| 65 63 74 2c 20 34 2c 20 | 32 34 2c 20 35 30 38 2c |ect, 4, |24, 508,|
|00000df0| 20 33 33 38 29 3b 09 2f | 2f 20 46 69 78 65 64 20 | 338);./|/ Fixed |
|00000e00| 76 61 6c 75 65 73 20 69 | 6e 20 65 78 61 6d 70 6c |values i|n exampl|
|00000e10| 65 0d 09 23 53 65 74 52 | 65 63 74 28 26 64 77 70 |e..#SetR|ect(&dwp|
|00000e20| 2d 3e 67 72 6f 77 5f 72 | 65 63 74 2c 20 31 30 30 |->grow_r|ect, 100|
|00000e30| 2c 20 36 30 2c 20 35 31 | 32 2c 20 33 30 32 29 3b |, 60, 51|2, 302);|
|00000e40| 0d 09 23 53 65 74 50 6f | 72 74 28 64 77 70 2d 3e |..#SetPo|rt(dwp->|
|00000e50| 77 70 29 3b 09 09 09 09 | 09 09 09 2f 2f 20 48 6f |wp);....|...// Ho|
|00000e60| 6f 6b 20 51 75 69 63 6b | 44 72 61 77 20 75 70 20 |ok Quick|Draw up |
|00000e70| 74 6f 20 77 69 6e 64 6f | 77 0d 09 23 42 61 63 6b |to windo|w..#Back|
|00000e80| 50 61 74 28 26 28 51 44 | 2d 3e 62 6c 61 63 6b 29 |Pat(&(QD|->black)|
|00000e90| 29 3b 09 09 09 09 09 09 | 2f 2f 20 42 61 63 6b 67 |);......|// Backg|
|00000ea0| 72 6f 75 6e 64 20 69 73 | 20 62 6c 61 63 6b 0d 09 |round is| black..|
|00000eb0| 23 50 65 6e 50 61 74 28 | 26 28 51 44 2d 3e 77 68 |#PenPat(|&(QD->wh|
|00000ec0| 69 74 65 29 29 3b 09 09 | 09 09 09 09 2f 2f 20 50 |ite));..|....// P|
|00000ed0| 65 6e 20 69 73 20 77 68 | 69 74 65 20 28 72 65 64 |en is wh|ite (red|
|00000ee0| 75 6e 64 61 6e 74 3f 3f | 29 0d 09 23 50 65 6e 53 |undant??|)..#PenS|
|00000ef0| 69 7a 65 28 32 2c 32 29 | 3b 09 09 09 09 09 09 09 |ize(2,2)|;.......|
|00000f00| 09 09 2f 2f 20 32 78 32 | 20 70 69 78 65 6c 73 0d |..// 2x2| pixels.|
|00000f10| 09 23 45 72 61 73 65 52 | 65 63 74 28 26 28 64 77 |.#EraseR|ect(&(dw|
|00000f20| 70 2d 3e 77 70 2d 3e 70 | 6f 72 74 52 65 63 74 29 |p->wp->p|ortRect)|
|00000f30| 29 3b 20 09 09 2f 2f 20 | 45 73 74 61 62 6c 69 73 |); ..// |Establis|
|00000f40| 68 20 6e 65 77 20 62 61 | 63 6b 67 72 6f 75 6e 64 |h new ba|ckground|
|00000f50| 0d 09 6e 5f 77 69 6e 64 | 6f 77 73 2b 2b 3b 0d 09 |..n_wind|ows++;..|
|00000f60| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 7d 0d 0d 2f |return(0|);..}../|
|00000f70| 2a 0d 20 2a 20 44 45 4c | 45 54 45 5f 57 49 4e 44 |*. * DEL|ETE_WIND|
|00000f80| 4f 57 28 29 20 2d 20 52 | 65 6d 6f 76 65 20 77 69 |OW() - R|emove wi|
|00000f90| 6e 64 6f 77 20 66 72 6f | 6d 20 73 63 72 65 65 6e |ndow fro|m screen|
|00000fa0| 20 26 20 64 69 73 70 6f | 73 65 20 6f 66 20 61 6c | & dispo|se of al|
|00000fb0| 6c 20 73 74 72 75 63 74 | 75 72 65 73 0d 20 2a 0d |l struct|ures. *.|
|00000fc0| 20 2a 20 49 6e 70 75 74 | 73 3a 0d 20 2a 09 09 09 | * Input|s:. *...|
|00000fd0| 64 70 09 2d 2d 3e 20 57 | 43 42 20 6f 66 20 74 68 |dp.--> W|CB of th|
|00000fe0| 65 20 77 69 6e 64 6f 77 | 20 74 6f 20 64 65 6c 65 |e window| to dele|
|00000ff0| 74 65 0d 20 2a 0d 20 2a | 09 4f 75 74 70 75 74 73 |te. *. *|.Outputs|
|00001000| 3a 0d 20 2a 09 09 09 09 | 6e 6f 6e 65 0d 20 2a 0d |:. *....|none. *.|
|00001010| 20 2a 20 43 61 6c 6c 73 | 20 74 68 65 20 03 23 44 | * Calls| the .#D|
|00001020| 69 73 70 6f 73 65 57 69 | 6e 64 6f 77 20 73 65 72 |isposeWi|ndow ser|
|00001030| 76 69 63 65 20 74 6f 20 | 72 65 6d 6f 76 65 20 74 |vice to |remove t|
|00001040| 68 65 20 77 69 6e 64 6f | 77 20 66 72 6f 6d 20 74 |he windo|w from t|
|00001050| 68 65 20 73 63 72 65 65 | 6e 0d 20 2a 20 61 6e 64 |he scree|n. * and|
|00001060| 20 72 65 6c 65 61 73 65 | 20 61 6c 6c 20 61 73 73 | release| all ass|
|00001070| 6f 63 69 61 74 65 64 20 | 64 61 74 61 20 73 74 72 |ociated |data str|
|00001080| 75 63 74 75 72 65 73 2c | 20 69 6e 63 6c 75 64 69 |uctures,| includi|
|00001090| 6e 67 20 74 68 65 20 77 | 69 6e 64 6f 77 0d 20 2a |ng the w|indow. *|
|000010a0| 20 72 65 63 6f 72 64 2e | 20 4e 4f 54 45 20 2d 20 | record.| NOTE - |
|000010b0| 61 73 73 75 6d 65 73 20 | 77 69 6e 64 6f 77 20 77 |assumes |window w|
|000010c0| 61 73 20 63 72 65 61 74 | 65 64 20 77 69 74 68 20 |as creat|ed with |
|000010d0| 72 65 63 6f 72 64 20 6f | 6e 20 68 65 61 70 2e 0d |record o|n heap..|
|000010e0| 20 2a 20 54 68 65 6e 20 | 66 72 65 65 73 20 75 70 | * Then |frees up|
|000010f0| 20 74 68 65 20 57 43 42 | 20 61 73 73 6f 63 69 61 | the WCB| associa|
|00001100| 74 65 64 20 77 69 74 68 | 20 74 68 65 20 77 69 6e |ted with| the win|
|00001110| 64 6f 77 2e 0d 20 2a 2f | 0d 64 65 6c 65 74 65 5f |dow.. */|.delete_|
|00001120| 77 69 6e 64 6f 77 28 64 | 70 29 0d 73 74 72 75 63 |window(d|p).struc|
|00001130| 74 20 77 63 62 20 2a 64 | 70 3b 0d 09 7b 0d 09 0d |t wcb *d|p;..{...|
|00001140| 09 69 66 28 64 70 2d 3e | 74 65 5f 68 61 6e 64 6c |.if(dp->|te_handl|
|00001150| 65 20 21 3d 20 4e 55 4c | 4c 29 09 09 09 09 09 09 |e != NUL|L)......|
|00001160| 2f 2f 20 49 66 20 65 64 | 69 74 20 77 69 6e 64 6f |// If ed|it windo|
|00001170| 77 0d 09 09 7b 0d 09 09 | 23 54 45 44 69 73 70 6f |w...{...|#TEDispo|
|00001180| 73 65 28 64 70 2d 3e 74 | 65 5f 68 61 6e 64 6c 65 |se(dp->t|e_handle|
|00001190| 29 3b 09 09 09 09 09 2f | 2f 20 52 65 74 75 72 6e |);...../|/ Return|
|000011a0| 20 54 45 20 72 65 63 6f | 72 64 20 74 6f 20 68 65 | TE reco|rd to he|
|000011b0| 61 70 0d 09 09 64 70 2d | 3e 74 65 5f 68 61 6e 64 |ap...dp-|>te_hand|
|000011c0| 6c 65 20 3d 20 4e 55 4c | 4c 3b 09 09 09 09 09 09 |le = NUL|L;......|
|000011d0| 2f 2f 20 4d 61 72 6b 20 | 54 45 20 69 6e 61 63 74 |// Mark |TE inact|
|000011e0| 69 76 65 20 69 6e 20 57 | 43 42 0d 09 09 7d 0d 09 |ive in W|CB...}..|
|000011f0| 23 44 69 73 70 6f 73 65 | 57 69 6e 64 6f 77 28 64 |#Dispose|Window(d|
|00001200| 70 2d 3e 77 70 29 3b 09 | 09 09 09 09 09 09 2f 2f |p->wp);.|......//|
|00001210| 20 44 69 73 70 6f 73 65 | 20 6f 66 20 74 68 65 20 | Dispose| of the |
|00001220| 77 69 6e 64 6f 77 0d 09 | 64 70 2d 3e 77 70 20 3d |window..|dp->wp =|
|00001230| 20 4e 55 4c 4c 3b 09 09 | 09 09 09 09 09 09 09 09 | NULL;..|........|
|00001240| 2f 2f 20 4d 61 72 6b 20 | 74 68 65 20 57 43 42 20 |// Mark |the WCB |
|00001250| 66 72 65 65 0d 09 0d 09 | 2f 2f 20 41 64 64 20 61 |free....|// Add a|
|00001260| 6e 79 74 68 69 6e 67 20 | 65 6c 73 65 20 68 65 72 |nything |else her|
|00001270| 65 20 79 6f 75 20 6d 61 | 79 20 77 61 6e 74 20 77 |e you ma|y want w|
|00001280| 68 65 6e 20 64 65 6c 65 | 74 69 6e 67 20 61 20 77 |hen dele|ting a w|
|00001290| 69 6e 64 6f 77 0d 09 2f | 2f 20 73 75 63 68 20 61 |indow../|/ such a|
|000012a0| 73 20 61 20 64 69 61 6c | 6f 67 20 6f 72 20 61 6c |s a dial|og or al|
|000012b0| 65 72 74 20 69 6e 74 65 | 72 61 63 74 69 6f 6e 2e |ert inte|raction.|
|000012c0| 0d 09 0d 09 6e 5f 77 69 | 6e 64 6f 77 73 2d 2d 3b |....n_wi|ndows--;|
|000012d0| 09 09 09 09 09 09 09 09 | 09 09 2f 2f 20 43 6f 75 |........|..// Cou|
|000012e0| 6e 74 20 69 74 20 67 6f | 6e 65 0d 09 7d 0d 0d 2f |nt it go|ne..}../|
|000012f0| 2a 0d 20 2a 09 43 4f 4e | 54 45 4e 54 5f 43 4c 49 |*. *.CON|TENT_CLI|
|00001300| 43 4b 28 29 20 2d 20 48 | 61 6e 64 6c 65 20 6d 6f |CK() - H|andle mo|
|00001310| 75 73 65 20 64 6f 77 6e | 20 69 6e 20 77 69 6e 64 |use down| in wind|
|00001320| 6f 77 20 63 6f 6e 74 65 | 6e 74 20 72 65 67 69 6f |ow conte|nt regio|
|00001330| 6e 0d 20 2a 0d 20 2a 20 | 49 6e 70 75 74 73 20 28 |n. *. * |Inputs (|
|00001340| 67 6c 6f 62 61 6c 20 76 | 61 72 69 61 62 6c 65 73 |global v|ariables|
|00001350| 20 6f 6e 6c 79 29 0d 20 | 2a 09 09 64 77 70 09 09 | only). |*..dwp..|
|00001360| 20 2d 2d 3e 09 57 43 42 | 20 6f 66 20 77 69 6e 64 | -->.WCB| of wind|
|00001370| 6f 77 20 69 6e 20 77 68 | 69 63 68 20 6d 6f 75 73 |ow in wh|ich mous|
|00001380| 65 20 77 61 73 20 63 6c | 69 63 6b 65 64 20 28 76 |e was cl|icked (v|
|00001390| 65 72 69 66 69 65 64 29 | 0d 20 2a 09 09 45 76 65 |erified)|. *..Eve|
|000013a0| 6e 74 2e 77 68 65 72 65 | 09 09 4d 6f 75 73 65 2d |nt.where|..Mouse-|
|000013b0| 64 6f 77 6e 20 6c 6f 63 | 61 74 69 6f 6e 20 28 67 |down loc|ation (g|
|000013c0| 6c 6f 62 61 6c 20 63 6f | 6f 72 64 69 6e 61 74 65 |lobal co|ordinate|
|000013d0| 73 29 0d 20 2a 0d 20 2a | 20 4f 75 74 70 75 74 73 |s). *. *| Outputs|
|000013e0| 3a 0d 20 2a 09 09 4e 6f | 20 65 78 70 6c 69 63 69 |:. *..No| explici|
|000013f0| 74 20 6f 75 74 70 75 74 | 73 0d 20 2a 0d 20 2a 2f |t output|s. *. */|
|00001400| 0d 63 6f 6e 74 65 6e 74 | 5f 63 6c 69 63 6b 28 29 |.content|_click()|
|00001410| 0d 09 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 73 68 |..{..uns|igned sh|
|00001420| 6f 72 74 20 65 78 74 3b | 0d 09 43 6f 6e 74 72 6f |ort ext;|..Contro|
|00001430| 6c 48 61 6e 64 6c 65 20 | 63 68 3b 0d 09 75 6e 73 |lHandle |ch;..uns|
|00001440| 69 67 6e 65 64 20 73 68 | 6f 72 74 20 70 61 72 74 |igned sh|ort part|
|00001450| 3b 0d 09 6c 6f 6e 67 20 | 66 6f 6f 3b 0d 09 52 65 |;..long |foo;..Re|
|00001460| 63 74 20 2a 5f 76 72 3b | 0d 09 69 6e 74 20 73 63 |ct *_vr;|..int sc|
|00001470| 72 6f 6c 6c 5f 75 70 28 | 29 3b 0d 09 69 6e 74 20 |roll_up(|);..int |
|00001480| 73 63 72 6f 6c 6c 5f 64 | 6f 77 6e 28 29 3b 0d 09 |scroll_d|own();..|
|00001490| 0d 09 2f 2f 0d 09 2f 2f | 20 4d 6f 75 73 65 2d 64 |..//..//| Mouse-d|
|000014a0| 6f 77 6e 20 69 6e 20 73 | 63 72 61 77 6c 20 77 69 |own in s|crawl wi|
|000014b0| 6e 64 6f 77 20 63 68 61 | 6e 67 65 73 20 74 68 65 |ndow cha|nges the|
|000014c0| 20 22 6f 6c 64 22 20 70 | 6f 73 69 74 69 6f 6e 0d | "old" p|osition.|
|000014d0| 09 2f 2f 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |.// to t|he curre|
|000014e0| 6e 74 20 70 6f 73 69 74 | 69 6f 6e 20 62 65 66 6f |nt posit|ion befo|
|000014f0| 72 65 20 61 6c 6c 6f 77 | 69 6e 67 20 64 72 61 77 |re allow|ing draw|
|00001500| 69 6e 67 2e 20 20 54 68 | 65 6e 20 0d 09 2f 2f 20 |ing. Th|en ..// |
|00001510| 69 74 20 74 75 72 6e 73 | 20 6f 6e 20 74 68 65 20 |it turns| on the |
|00001520| 70 65 6e 2d 64 6f 77 6e | 20 66 6c 61 67 2e 0d 09 |pen-down| flag...|
|00001530| 2f 2f 0d 09 69 66 28 64 | 77 70 2d 3e 74 65 5f 68 |//..if(d|wp->te_h|
|00001540| 61 6e 64 6c 65 20 3d 3d | 20 4e 55 4c 4c 29 09 09 |andle ==| NULL)..|
|00001550| 09 09 09 2f 2f 20 49 66 | 20 74 68 69 73 20 69 73 |...// If| this is|
|00001560| 20 61 20 22 73 63 72 61 | 77 6c 22 20 77 69 6e 64 | a "scra|wl" wind|
|00001570| 6f 77 0d 09 09 7b 0d 09 | 09 23 47 65 74 4d 6f 75 |ow...{..|.#GetMou|
|00001580| 73 65 28 26 70 6f 6c 64 | 29 3b 0d 09 09 70 65 6e |se(&pold|);...pen|
|00001590| 5f 64 6f 77 6e 20 3d 20 | 54 52 55 45 3b 0d 09 09 |_down = |TRUE;...|
|000015a0| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 09 7d 0d 09 |return(0|);...}..|
|000015b0| 0d 09 2f 2f 0d 09 2f 2f | 20 57 65 20 68 61 76 65 |..//..//| We have|
|000015c0| 20 61 20 6d 6f 75 73 65 | 2d 64 6f 77 6e 20 69 6e | a mouse|-down in|
|000015d0| 20 63 6f 6e 74 65 6e 74 | 20 6f 66 20 61 6e 20 65 | content| of an e|
|000015e0| 64 69 74 20 77 69 6e 64 | 6f 77 2e 0d 09 2f 2f 0d |dit wind|ow...//.|
|000015f0| 09 2f 2f 20 49 66 20 69 | 74 27 73 20 69 6e 20 74 |.// If i|t's in t|
|00001600| 68 65 20 76 69 65 77 52 | 65 63 74 2c 20 64 6f 20 |he viewR|ect, do |
|00001610| 74 68 65 20 54 45 43 6c | 69 63 6b 2e 20 20 4f 74 |the TECl|ick. Ot|
|00001620| 68 65 72 77 69 73 65 2c | 20 68 61 6e 64 6c 65 0d |herwise,| handle.|
|00001630| 09 2f 2f 20 74 68 65 20 | 63 6c 69 63 6b 20 69 6e |.// the |click in|
|00001640| 20 61 20 63 6f 6e 74 72 | 6f 6c 2e 0d 09 2f 2f 0d | a contr|ol...//.|
|00001650| 09 23 47 6c 6f 62 61 6c | 54 6f 4c 6f 63 61 6c 28 |.#Global|ToLocal(|
|00001660| 26 45 76 65 6e 74 2e 77 | 68 65 72 65 29 3b 09 09 |&Event.w|here);..|
|00001670| 09 09 2f 2f 20 43 6f 6e | 76 65 72 74 20 63 6f 6f |..// Con|vert coo|
|00001680| 72 64 69 6e 61 74 65 73 | 20 74 6f 20 6c 6f 63 61 |rdinates| to loca|
|00001690| 6c 0d 09 66 6f 6f 20 3d | 20 23 50 74 49 6e 52 65 |l..foo =| #PtInRe|
|000016a0| 63 74 28 26 45 76 65 6e | 74 2e 77 68 65 72 65 2c |ct(&Even|t.where,|
|000016b0| 20 26 28 28 2a 28 64 77 | 70 2d 3e 74 65 5f 68 61 | &((*(dw|p->te_ha|
|000016c0| 6e 64 6c 65 29 29 2d 3e | 76 69 65 77 52 65 63 74 |ndle))->|viewRect|
|000016d0| 29 29 3b 0d 09 69 66 28 | 66 6f 6f 29 0d 09 09 23 |));..if(|foo)...#|
|000016e0| 54 45 43 6c 69 63 6b 28 | 26 45 76 65 6e 74 2e 77 |TEClick(|&Event.w|
|000016f0| 68 65 72 65 2c 20 30 2c | 20 64 77 70 2d 3e 74 65 |here, 0,| dwp->te|
|00001700| 5f 68 61 6e 64 6c 65 29 | 3b 20 2f 2f 20 30 20 73 |_handle)|; // 0 s|
|00001710| 68 6f 75 6c 64 20 62 65 | 20 22 65 78 74 22 0d 09 |hould be| "ext"..|
|00001720| 65 6c 73 65 0d 09 09 7b | 09 09 09 09 09 09 09 09 |else...{|........|
|00001730| 09 09 09 09 2f 2f 20 49 | 6e 20 63 6f 6e 74 72 6f |....// I|n contro|
|00001740| 6c 0d 09 09 70 61 72 74 | 20 3d 20 28 73 68 6f 72 |l...part| = (shor|
|00001750| 74 29 23 46 69 6e 64 43 | 6f 6e 74 72 6f 6c 28 26 |t)#FindC|ontrol(&|
|00001760| 45 76 65 6e 74 2e 77 68 | 65 72 65 2c 20 45 76 57 |Event.wh|ere, EvW|
|00001770| 69 6e 64 6f 77 2c 20 26 | 63 68 29 3b 0d 09 09 73 |indow, &|ch);...s|
|00001780| 77 69 74 63 68 28 70 61 | 72 74 29 0d 09 09 09 7b |witch(pa|rt)....{|
|00001790| 0d 09 09 09 63 61 73 65 | 20 69 6e 55 70 42 75 74 |....case| inUpBut|
|000017a0| 74 6f 6e 3a 0d 09 09 09 | 09 23 54 72 61 63 6b 43 |ton:....|.#TrackC|
|000017b0| 6f 6e 74 72 6f 6c 28 63 | 68 2c 20 26 45 76 65 6e |ontrol(c|h, &Even|
|000017c0| 74 2e 77 68 65 72 65 2c | 20 73 63 72 6f 6c 6c 5f |t.where,| scroll_|
|000017d0| 75 70 29 3b 0d 09 09 09 | 09 62 72 65 61 6b 3b 0d |up);....|.break;.|
|000017e0| 09 09 09 09 0d 09 09 09 | 63 61 73 65 20 69 6e 44 |........|case inD|
|000017f0| 6f 77 6e 42 75 74 74 6f | 6e 3a 0d 09 09 09 09 23 |ownButto|n:.....#|
|00001800| 54 72 61 63 6b 43 6f 6e | 74 72 6f 6c 28 63 68 2c |TrackCon|trol(ch,|
|00001810| 20 26 45 76 65 6e 74 2e | 77 68 65 72 65 2c 20 73 | &Event.|where, s|
|00001820| 63 72 6f 6c 6c 5f 64 6f | 77 6e 29 3b 0d 09 09 09 |croll_do|wn);....|
|00001830| 09 62 72 65 61 6b 3b 0d | 09 09 09 09 0d 09 09 09 |.break;.|........|
|00001840| 63 61 73 65 20 69 6e 50 | 61 67 65 55 70 3a 0d 09 |case inP|ageUp:..|
|00001850| 09 09 09 70 61 67 65 5f | 73 63 72 6f 6c 6c 28 70 |...page_|scroll(p|
|00001860| 61 72 74 2c 20 63 68 2c | 20 2d 31 29 3b 0d 09 09 |art, ch,| -1);...|
|00001870| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 09 0d 09 09 |..break;|........|
|00001880| 09 63 61 73 65 20 69 6e | 50 61 67 65 44 6f 77 6e |.case in|PageDown|
|00001890| 3a 0d 09 09 09 09 70 61 | 67 65 5f 73 63 72 6f 6c |:.....pa|ge_scrol|
|000018a0| 6c 28 70 61 72 74 2c 20 | 63 68 2c 20 31 29 3b 0d |l(part, |ch, 1);.|
|000018b0| 09 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 09 09 0d |....brea|k;......|
|000018c0| 09 09 09 63 61 73 65 20 | 69 6e 54 68 75 6d 62 3a |...case |inThumb:|
|000018d0| 0d 09 09 09 09 23 54 72 | 61 63 6b 43 6f 6e 74 72 |.....#Tr|ackContr|
|000018e0| 6f 6c 28 63 68 2c 20 26 | 45 76 65 6e 74 2e 77 68 |ol(ch, &|Event.wh|
|000018f0| 65 72 65 2c 20 30 29 3b | 0d 09 09 09 09 65 64 69 |ere, 0);|.....edi|
|00001900| 74 5f 73 63 72 6f 6c 6c | 28 29 3b 0d 09 09 09 7d |t_scroll|();....}|
|00001910| 0d 09 09 7d 0d 09 7d 0d | 0d 2f 2a 0d 20 2a 20 43 |...}..}.|./*. * C|
|00001920| 4f 4e 54 45 4e 54 5f 52 | 45 4c 45 41 53 45 28 29 |ONTENT_R|ELEASE()|
|00001930| 20 2d 20 52 65 6c 65 61 | 73 65 20 6f 66 20 6d 6f | - Relea|se of mo|
|00001940| 75 73 65 20 69 6e 20 63 | 6f 6e 74 65 6e 74 20 72 |use in c|ontent r|
|00001950| 65 67 69 6f 6e 0d 20 2a | 0d 20 2a 20 4f 6e 6c 79 |egion. *|. * Only|
|00001960| 20 69 66 20 73 63 72 61 | 77 6c 20 77 69 6e 64 6f | if scra|wl windo|
|00001970| 77 2c 20 74 6f 67 67 6c | 65 20 74 68 65 20 64 72 |w, toggl|e the dr|
|00001980| 61 77 2f 6d 6f 76 65 20 | 66 6c 61 67 0d 20 2a 2f |aw/move |flag. */|
|00001990| 0d 63 6f 6e 74 65 6e 74 | 5f 72 65 6c 65 61 73 65 |.content|_release|
|000019a0| 28 29 0d 09 7b 0d 09 69 | 66 28 64 77 70 2d 3e 74 |()..{..i|f(dwp->t|
|000019b0| 65 5f 68 61 6e 64 6c 65 | 20 3d 3d 20 4e 55 4c 4c |e_handle| == NULL|
|000019c0| 29 0d 09 09 70 65 6e 5f | 64 6f 77 6e 20 3d 20 46 |)...pen_|down = F|
|000019d0| 41 4c 53 45 3b 0d 09 72 | 65 74 75 72 6e 28 30 29 |ALSE;..r|eturn(0)|
|000019e0| 3b 0d 09 7d 0d 0d 2f 2a | 0d 20 2a 20 44 4f 5f 53 |;..}../*|. * DO_S|
|000019f0| 43 52 41 57 4c 28 29 20 | 2d 20 48 61 6e 64 6c 65 |CRAWL() |- Handle|
|00001a00| 20 73 63 72 61 77 6c 69 | 6e 67 0d 20 2a 0d 20 2a | scrawli|ng. *. *|
|00001a10| 20 54 68 69 73 20 69 73 | 20 61 63 74 75 61 6c 6c | This is| actuall|
|00001a20| 79 20 63 61 6c 6c 65 64 | 20 66 72 6f 20 74 68 65 |y called| fro the|
|00001a30| 20 63 75 72 73 6f 72 20 | 68 61 6e 64 6c 69 6e 67 | cursor |handling|
|00001a40| 0d 20 2a 20 72 6f 75 74 | 69 6e 65 2c 20 73 69 6e |. * rout|ine, sin|
|00001a50| 63 65 20 69 74 20 69 73 | 20 6e 65 65 64 65 64 20 |ce it is| needed |
|00001a60| 77 68 65 74 68 65 72 20 | 6f 72 20 6e 6f 74 20 74 |whether |or not t|
|00001a70| 68 65 20 6d 6f 75 73 65 | 0d 20 2a 20 69 73 20 64 |he mouse|. * is d|
|00001a80| 6f 77 6e 2e 0d 20 2a 2f | 0d 64 6f 5f 73 63 72 61 |own.. */|.do_scra|
|00001a90| 77 6c 28 29 0d 09 7b 0d | 09 50 6f 69 6e 74 20 70 |wl()..{.|.Point p|
|00001aa0| 3b 0d 09 0d 09 23 47 65 | 74 4d 6f 75 73 65 28 26 |;....#Ge|tMouse(&|
|00001ab0| 70 29 3b 0d 20 20 20 69 | 66 28 28 70 6f 6c 64 2e |p);. i|f((pold.|
|00001ac0| 76 68 5b 30 5d 20 3d 3d | 20 70 2e 76 68 5b 30 5d |vh[0] ==| p.vh[0]|
|00001ad0| 29 20 26 26 20 28 70 6f | 6c 64 2e 76 68 5b 31 5d |) && (po|ld.vh[1]|
|00001ae0| 20 3d 3d 20 70 2e 76 68 | 5b 31 5d 29 29 0d 20 20 | == p.vh|[1])). |
|00001af0| 20 20 20 20 72 65 74 75 | 72 6e 3b 0d 09 70 6f 6c | retu|rn;..pol|
|00001b00| 64 2e 76 68 5b 30 5d 20 | 3d 20 70 2e 76 68 5b 30 |d.vh[0] |= p.vh[0|
|00001b10| 5d 3b 0d 09 70 6f 6c 64 | 2e 76 68 5b 31 5d 20 3d |];..pold|.vh[1] =|
|00001b20| 20 70 2e 76 68 5b 31 5d | 3b 0d 20 20 20 69 66 28 | p.vh[1]|;. if(|
|00001b30| 70 65 6e 5f 64 6f 77 6e | 29 0d 20 20 20 20 20 20 |pen_down|). |
|00001b40| 23 4c 69 6e 65 54 6f 28 | 70 2e 76 68 5b 31 5d 2c |#LineTo(|p.vh[1],|
|00001b50| 70 2e 76 68 5b 30 5d 29 | 3b 0d 20 20 20 65 6c 73 |p.vh[0])|;. els|
|00001b60| 65 0d 20 20 20 20 20 20 | 23 4d 6f 76 65 54 6f 28 |e. |#MoveTo(|
|00001b70| 70 2e 76 68 5b 31 5d 2c | 70 2e 76 68 5b 30 5d 29 |p.vh[1],|p.vh[0])|
|00001b80| 3b 0d 09 7d 0d 0d 2f 2a | 0d 20 2a 20 41 43 54 5f |;..}../*|. * ACT_|
|00001b90| 57 49 4e 44 28 29 20 2d | 20 44 6f 20 61 63 74 69 |WIND() -| Do acti|
|00001ba0| 76 61 74 65 20 73 74 75 | 66 66 20 66 6f 72 20 77 |vate stu|ff for w|
|00001bb0| 69 6e 64 6f 77 0d 20 2a | 2f 0d 61 63 74 5f 77 69 |indow. *|/.act_wi|
|00001bc0| 6e 64 28 77 70 29 0d 57 | 69 6e 64 6f 77 50 74 72 |nd(wp).W|indowPtr|
|00001bd0| 20 77 70 3b 09 09 09 09 | 09 09 09 09 09 09 2f 2f | wp;....|......//|
|00001be0| 20 57 69 6e 64 6f 77 20 | 74 6f 20 61 63 74 69 76 | Window |to activ|
|00001bf0| 61 74 65 0d 09 7b 0d 09 | 73 74 72 75 63 74 20 77 |ate..{..|struct w|
|00001c00| 63 62 20 2a 66 69 6e 64 | 5f 77 63 62 28 29 3b 0d |cb *find|_wcb();.|
|00001c10| 09 73 74 72 75 63 74 20 | 77 63 62 20 2a 64 70 3b |.struct |wcb *dp;|
|00001c20| 0d 09 0d 09 69 66 28 28 | 64 70 20 3d 20 66 69 6e |....if((|dp = fin|
|00001c30| 64 5f 77 63 62 28 77 70 | 29 29 20 3d 3d 20 4e 55 |d_wcb(wp|)) == NU|
|00001c40| 4c 4c 29 09 09 09 2f 2f | 20 4d 61 6b 65 20 74 68 |LL)...//| Make th|
|00001c50| 69 73 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 0d |is the c|urrent .|
|00001c60| 09 09 72 65 74 75 72 6e | 28 30 29 3b 09 09 09 09 |..return|(0);....|
|00001c70| 09 09 09 09 09 2f 2f 20 | 4e 6f 74 20 6f 75 72 73 |.....// |Not ours|
|00001c80| 2c 20 69 67 6e 6f 72 65 | 20 74 68 65 20 65 76 65 |, ignore| the eve|
|00001c90| 6e 74 0d 0d 09 23 53 65 | 74 50 6f 72 74 28 77 70 |nt...#Se|tPort(wp|
|00001ca0| 29 3b 09 09 09 09 09 09 | 09 09 09 2f 2f 20 54 68 |);......|...// Th|
|00001cb0| 69 73 20 69 73 20 63 75 | 72 72 65 6e 74 20 67 72 |is is cu|rrent gr|
|00001cc0| 61 66 50 6f 72 74 0d 09 | 0d 09 69 66 28 64 70 2d |afPort..|..if(dp-|
|00001cd0| 3e 74 65 5f 68 61 6e 64 | 6c 65 20 3d 3d 20 4e 55 |>te_hand|le == NU|
|00001ce0| 4c 4c 29 09 09 09 09 09 | 2f 2f 20 49 66 20 69 74 |LL).....|// If it|
|00001cf0| 27 73 20 61 20 73 63 72 | 61 77 6c 20 77 69 6e 64 |'s a scr|awl wind|
|00001d00| 6f 77 0d 09 09 7b 0d 09 | 09 2f 2f 20 4e 6f 74 68 |ow...{..|.// Noth|
|00001d10| 69 6e 67 20 66 6f 72 20 | 6e 6f 77 0d 09 09 7d 0d |ing for |now...}.|
|00001d20| 09 65 6c 73 65 09 09 09 | 09 09 09 09 09 09 09 09 |.else...|........|
|00001d30| 09 2f 2f 20 44 6f 20 65 | 64 69 74 20 77 69 6e 64 |.// Do e|dit wind|
|00001d40| 6f 77 0d 09 09 7b 0d 09 | 09 23 44 72 61 77 47 72 |ow...{..|.#DrawGr|
|00001d50| 6f 77 49 63 6f 6e 28 77 | 70 29 3b 09 09 09 09 09 |owIcon(w|p);.....|
|00001d60| 09 2f 2f 20 44 72 61 77 | 20 61 63 74 69 76 61 74 |.// Draw| activat|
|00001d70| 65 64 20 76 65 72 73 69 | 6f 6e 0d 09 09 23 54 45 |ed versi|on...#TE|
|00001d80| 41 63 74 69 76 61 74 65 | 28 64 70 2d 3e 74 65 5f |Activate|(dp->te_|
|00001d90| 68 61 6e 64 6c 65 29 3b | 09 09 09 2f 2f 20 54 75 |handle);|...// Tu|
|00001da0| 72 6e 20 6f 6e 20 74 65 | 78 74 20 65 64 69 74 69 |rn on te|xt editi|
|00001db0| 6e 67 0d 09 09 23 53 68 | 6f 77 43 6f 6e 74 72 6f |ng...#Sh|owContro|
|00001dc0| 6c 28 64 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 29 |l(dp->vs|_handle)|
|00001dd0| 3b 09 09 09 2f 2f 20 44 | 72 61 77 20 69 6e 20 73 |;...// D|raw in s|
|00001de0| 63 72 6f 6c 6c 65 72 73 | 0d 09 09 23 53 68 6f 77 |crollers|...#Show|
|00001df0| 43 6f 6e 74 72 6f 6c 28 | 64 70 2d 3e 68 73 5f 68 |Control(|dp->hs_h|
|00001e00| 61 6e 64 6c 65 29 3b 0d | 09 09 7d 0d 09 64 77 70 |andle);.|..}..dwp|
|00001e10| 20 3d 20 64 70 3b 09 09 | 09 09 09 09 09 09 09 09 | = dp;..|........|
|00001e20| 2f 2f 20 53 65 74 20 67 | 6c 6f 62 61 6c 20 70 6f |// Set g|lobal po|
|00001e30| 69 6e 74 65 72 0d 09 7d | 0d 0d 2f 2a 0d 20 2a 20 |inter..}|../*. * |
|00001e40| 44 45 41 43 54 5f 57 49 | 4e 44 28 29 20 2d 20 44 |DEACT_WI|ND() - D|
|00001e50| 6f 20 64 65 61 63 74 69 | 76 61 74 69 6f 6e 20 73 |o deacti|vation s|
|00001e60| 74 75 66 66 20 66 6f 72 | 20 77 69 6e 64 6f 77 20 |tuff for| window |
|00001e70| 0d 20 2a 2f 0d 64 65 61 | 63 74 5f 77 69 6e 64 28 |. */.dea|ct_wind(|
|00001e80| 77 70 29 0d 57 69 6e 64 | 6f 77 50 74 72 20 77 70 |wp).Wind|owPtr wp|
|00001e90| 3b 0d 09 7b 0d 09 73 74 | 72 75 63 74 20 77 63 62 |;..{..st|ruct wcb|
|00001ea0| 20 2a 64 70 3b 0d 09 73 | 74 72 75 63 74 20 77 63 | *dp;..s|truct wc|
|00001eb0| 62 20 2a 66 69 6e 64 5f | 77 63 62 28 29 3b 0d 09 |b *find_|wcb();..|
|00001ec0| 0d 09 69 66 28 28 64 70 | 20 3d 20 66 69 6e 64 5f |..if((dp| = find_|
|00001ed0| 77 63 62 28 77 70 29 29 | 20 3d 3d 20 4e 55 4c 4c |wcb(wp))| == NULL|
|00001ee0| 29 09 09 09 2f 2f 20 46 | 69 6e 64 20 6f 75 72 20 |)...// F|ind our |
|00001ef0| 57 43 42 20 66 6f 72 20 | 74 68 69 73 20 77 69 6e |WCB for |this win|
|00001f00| 64 6f 77 0d 09 09 72 65 | 74 75 72 6e 28 30 29 3b |dow...re|turn(0);|
|00001f10| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 4f 6f 70 73 |........|.// Oops|
|00001f20| 2c 20 6e 6f 74 20 6f 75 | 72 73 0d 09 09 0d 09 23 |, not ou|rs.....#|
|00001f30| 53 65 74 50 6f 72 74 28 | 77 70 29 3b 09 09 09 09 |SetPort(|wp);....|
|00001f40| 09 09 09 09 09 2f 2f 20 | 54 68 69 73 20 69 73 20 |.....// |This is |
|00001f50| 63 75 72 72 65 6e 74 20 | 67 72 61 66 50 6f 72 74 |current |grafPort|
|00001f60| 0d 09 0d 09 69 66 28 64 | 70 2d 3e 74 65 5f 68 61 |....if(d|p->te_ha|
|00001f70| 6e 64 6c 65 20 3d 3d 20 | 4e 55 4c 4c 29 09 09 09 |ndle == |NULL)...|
|00001f80| 09 09 2f 2f 20 49 66 20 | 69 74 27 73 20 61 20 73 |..// If |it's a s|
|00001f90| 63 72 61 77 6c 20 77 69 | 6e 64 6f 77 0d 09 09 7b |crawl wi|ndow...{|
|00001fa0| 0d 09 09 72 65 74 75 72 | 6e 28 30 29 3b 0d 09 09 |...retur|n(0);...|
|00001fb0| 7d 0d 09 65 6c 73 65 09 | 09 09 09 09 09 09 09 09 |}..else.|........|
|00001fc0| 09 09 09 2f 2f 20 44 6f | 20 65 64 69 74 20 77 69 |...// Do| edit wi|
|00001fd0| 6e 64 6f 77 0d 09 09 7b | 0d 09 09 23 44 72 61 77 |ndow...{|...#Draw|
|00001fe0| 47 72 6f 77 49 63 6f 6e | 28 77 70 29 3b 09 09 09 |GrowIcon|(wp);...|
|00001ff0| 09 09 09 2f 2f 20 44 72 | 61 77 20 64 65 61 63 74 |...// Dr|aw deact|
|00002000| 69 76 61 74 65 64 20 76 | 65 72 73 69 6f 6e 0d 09 |ivated v|ersion..|
|00002010| 09 23 54 45 44 65 61 63 | 74 69 76 61 74 65 28 64 |.#TEDeac|tivate(d|
|00002020| 70 2d 3e 74 65 5f 68 61 | 6e 64 6c 65 29 3b 09 09 |p->te_ha|ndle);..|
|00002030| 09 2f 2f 20 54 75 72 6e | 20 6f 66 66 20 74 65 78 |.// Turn| off tex|
|00002040| 74 20 65 64 69 74 69 6e | 67 0d 09 09 23 48 69 64 |t editin|g...#Hid|
|00002050| 65 43 6f 6e 74 72 6f 6c | 28 64 70 2d 3e 76 73 5f |eControl|(dp->vs_|
|00002060| 68 61 6e 64 6c 65 29 3b | 09 09 09 2f 2f 20 48 69 |handle);|...// Hi|
|00002070| 64 65 20 73 63 72 6f 6c | 6c 65 72 73 0d 09 09 23 |de scrol|lers...#|
|00002080| 48 69 64 65 43 6f 6e 74 | 72 6f 6c 28 64 70 2d 3e |HideCont|rol(dp->|
|00002090| 68 73 5f 68 61 6e 64 6c | 65 29 3b 0d 09 09 7d 0d |hs_handl|e);...}.|
|000020a0| 09 64 77 70 20 3d 20 4e | 55 4c 4c 3b 09 09 09 09 |.dwp = N|ULL;....|
|000020b0| 09 09 09 09 09 09 2f 2f | 20 43 6c 65 61 72 20 6d |......//| Clear m|
|000020c0| 61 73 74 65 72 20 70 6f | 69 6e 74 65 72 0d 09 7d |aster po|inter..}|
|000020d0| 0d 09 0d 2f 2a 0d 20 2a | 20 55 50 44 5f 57 49 4e |.../*. *| UPD_WIN|
|000020e0| 44 28 29 20 2d 20 55 70 | 64 61 74 65 20 77 69 6e |D() - Up|date win|
|000020f0| 64 6f 77 0d 20 2a 0d 20 | 2a 20 4e 6f 74 65 20 74 |dow. *. |* Note t|
|00002100| 68 61 74 20 74 68 69 73 | 20 6d 61 79 20 62 65 20 |hat this| may be |
|00002110| 63 61 6c 6c 65 64 20 77 | 68 65 74 68 65 72 20 6f |called w|hether o|
|00002120| 72 20 6e 6f 74 20 74 68 | 65 20 77 69 6e 64 6f 77 |r not th|e window|
|00002130| 0d 20 2a 20 69 73 20 74 | 68 65 20 66 72 6f 6e 74 |. * is t|he front|
|00002140| 20 77 69 6e 64 6f 77 20 | 61 6e 64 2f 6f 72 20 61 | window |and/or a|
|00002150| 63 74 69 76 65 2e 20 20 | 54 68 69 73 20 6d 75 73 |ctive. |This mus|
|00002160| 74 20 6e 6f 74 20 63 68 | 61 6e 67 65 0d 20 2a 20 |t not ch|ange. * |
|00002170| 6f 75 72 20 61 73 73 75 | 6d 70 74 69 6f 6e 73 20 |our assu|mptions |
|00002180| 61 62 6f 75 74 20 74 68 | 65 20 66 72 6f 6e 74 20 |about th|e front |
|00002190| 77 69 6e 64 6f 77 2e 0d | 20 2a 0d 20 2a 20 4d 6f |window..| *. * Mo|
|000021a0| 72 65 20 69 6e 74 65 72 | 65 73 74 69 6e 67 20 69 |re inter|esting i|
|000021b0| 73 20 74 68 65 20 66 61 | 63 74 20 74 68 61 74 20 |s the fa|ct that |
|000021c0| 74 68 69 73 20 72 6f 75 | 74 69 6e 65 20 67 65 74 |this rou|tine get|
|000021d0| 73 20 63 61 6c 6c 65 64 | 20 0d 20 2a 20 63 6f 6e |s called| . * con|
|000021e0| 74 69 6e 75 6f 75 73 6c | 79 20 66 6f 72 20 65 61 |tinuousl|y for ea|
|000021f0| 63 68 20 77 69 6e 64 6f | 77 2e 20 20 49 66 20 42 |ch windo|w. If B|
|00002200| 65 67 69 6e 55 70 64 61 | 74 65 20 73 65 74 73 20 |eginUpda|te sets |
|00002210| 74 68 65 20 76 69 73 52 | 67 6e 20 74 6f 20 0d 20 |the visR|gn to . |
|00002220| 2a 20 61 6e 79 74 68 69 | 6e 67 20 62 75 74 20 74 |* anythi|ng but t|
|00002230| 68 65 20 65 6d 70 74 79 | 20 72 65 67 69 6f 6e 2c |he empty| region,|
|00002240| 20 73 6f 6d 65 74 68 69 | 6e 67 20 67 65 74 73 20 | somethi|ng gets |
|00002250| 64 72 61 77 6e 2e 0d 20 | 2a 2f 0d 75 70 64 5f 77 |drawn.. |*/.upd_w|
|00002260| 69 6e 64 28 77 70 29 0d | 57 69 6e 64 6f 77 50 74 |ind(wp).|WindowPt|
|00002270| 72 20 77 70 3b 0d 09 7b | 0d 09 73 74 72 75 63 74 |r wp;..{|..struct|
|00002280| 20 77 63 62 20 2a 66 69 | 6e 64 5f 77 63 62 28 29 | wcb *fi|nd_wcb()|
|00002290| 3b 0d 09 73 74 72 75 63 | 74 20 77 63 62 20 2a 64 |;..struc|t wcb *d|
|000022a0| 70 3b 0d 09 0d 09 0d 09 | 69 66 28 28 64 70 20 3d |p;......|if((dp =|
|000022b0| 20 66 69 6e 64 5f 77 63 | 62 28 77 70 29 29 20 3d | find_wc|b(wp)) =|
|000022c0| 3d 20 4e 55 4c 4c 29 09 | 09 09 2f 2f 20 47 65 74 |= NULL).|..// Get|
|000022d0| 20 74 68 65 20 57 43 42 | 20 66 6f 72 20 74 68 69 | the WCB| for thi|
|000022e0| 73 20 77 69 6e 64 6f 77 | 0d 09 09 72 65 74 75 72 |s window|...retur|
|000022f0| 6e 28 30 29 3b 09 09 09 | 09 09 09 09 09 09 2f 2f |n(0);...|......//|
|00002300| 20 28 6e 6f 74 20 6f 75 | 72 73 3f 3f 29 0d 09 0d | (not ou|rs??)...|
|00002310| 09 23 42 65 67 69 6e 55 | 70 64 61 74 65 28 77 70 |.#BeginU|pdate(wp|
|00002320| 29 3b 09 09 09 09 09 09 | 09 09 2f 2f 20 46 75 64 |);......|..// Fud|
|00002330| 67 65 20 76 69 73 52 67 | 6e 20 74 6f 20 75 70 64 |ge visRg|n to upd|
|00002340| 61 74 65 20 70 6f 72 74 | 69 6f 6e 0d 0d 09 23 53 |ate port|ion...#S|
|00002350| 65 74 50 6f 72 74 28 77 | 70 29 3b 09 09 09 09 09 |etPort(w|p);.....|
|00002360| 09 09 09 09 2f 2f 20 48 | 6f 6f 6b 20 75 70 20 74 |....// H|ook up t|
|00002370| 6f 20 51 75 69 63 6b 44 | 72 61 77 0d 09 0d 09 69 |o QuickD|raw....i|
|00002380| 66 28 64 70 2d 3e 74 65 | 5f 68 61 6e 64 6c 65 20 |f(dp->te|_handle |
|00002390| 3d 3d 20 4e 55 4c 4c 29 | 09 09 09 09 09 2f 2f 20 |== NULL)|.....// |
|000023a0| 49 66 20 69 74 27 73 20 | 61 20 73 63 72 61 77 6c |If it's |a scrawl|
|000023b0| 20 77 69 6e 64 6f 77 0d | 09 09 23 45 72 61 73 65 | window.|..#Erase|
|000023c0| 52 65 63 74 28 26 28 77 | 70 2d 3e 70 6f 72 74 52 |Rect(&(w|p->portR|
|000023d0| 65 63 74 29 29 3b 20 09 | 09 09 2f 2f 20 4a 75 73 |ect)); .|..// Jus|
|000023e0| 74 20 77 69 70 65 20 69 | 74 20 63 6c 65 61 6e 0d |t wipe i|t clean.|
|000023f0| 09 65 6c 73 65 09 09 09 | 09 09 09 09 09 09 09 09 |.else...|........|
|00002400| 09 2f 2f 20 44 6f 20 65 | 64 69 74 20 77 69 6e 64 |.// Do e|dit wind|
|00002410| 6f 77 0d 09 09 7b 0d 09 | 09 23 44 72 61 77 47 72 |ow...{..|.#DrawGr|
|00002420| 6f 77 49 63 6f 6e 28 77 | 70 29 3b 09 09 09 09 09 |owIcon(w|p);.....|
|00002430| 09 2f 2f 20 44 72 61 77 | 20 74 68 65 20 67 72 6f |.// Draw| the gro|
|00002440| 77 20 69 63 6f 6e 0d 09 | 09 23 44 72 61 77 43 6f |w icon..|.#DrawCo|
|00002450| 6e 74 72 6f 6c 73 28 77 | 70 29 3b 09 09 09 09 09 |ntrols(w|p);.....|
|00002460| 09 2f 2f 20 44 72 61 77 | 20 61 6c 6c 20 63 6f 6e |.// Draw| all con|
|00002470| 74 72 6f 6c 73 0d 09 09 | 2f 2f 0d 09 09 2f 2f 20 |trols...|//...// |
|00002480| 4e 6f 74 65 20 74 68 65 | 20 73 79 6e 74 61 78 20 |Note the| syntax |
|00002490| 66 6f 72 20 61 64 64 72 | 65 73 73 69 6e 67 20 74 |for addr|essing t|
|000024a0| 68 65 20 72 67 6e 42 62 | 6f 78 20 6f 66 20 74 68 |he rgnBb|ox of th|
|000024b0| 65 20 77 69 6e 64 6f 77 | 27 73 0d 09 09 2f 2f 20 |e window|'s...// |
|000024c0| 67 72 61 66 50 6f 72 74 | 27 73 20 76 69 73 52 67 |grafPort|'s visRg|
|000024d0| 6e 2e 20 20 54 68 69 73 | 20 69 73 20 74 68 65 20 |n. This| is the |
|000024e0| 72 65 63 6f 6d 6d 65 6e | 64 65 64 20 52 65 63 74 |recommen|ded Rect|
|000024f0| 20 74 6f 20 75 73 65 0d | 09 09 2f 2f 20 77 68 65 | to use.|..// whe|
|00002500| 6e 20 63 61 6c 6c 69 6e | 67 20 54 45 55 70 64 61 |n callin|g TEUpda|
|00002510| 74 65 2e 20 20 57 68 6f | 20 73 61 79 73 20 43 20 |te. Who| says C |
|00002520| 69 73 20 65 61 73 79 20 | 74 6f 20 72 65 61 64 3f |is easy |to read?|
|00002530| 0d 09 09 2f 2f 0d 09 09 | 23 54 45 55 70 64 61 74 |...//...|#TEUpdat|
|00002540| 65 28 26 28 28 2a 28 77 | 70 2d 3e 76 69 73 52 67 |e(&((*(w|p->visRg|
|00002550| 6e 29 29 2d 3e 72 67 6e | 42 42 6f 78 29 2c 20 64 |n))->rgn|BBox), d|
|00002560| 70 2d 3e 74 65 5f 68 61 | 6e 64 6c 65 29 3b 0d 09 |p->te_ha|ndle);..|
|00002570| 09 7d 0d 09 23 45 6e 64 | 55 70 64 61 74 65 28 77 |.}..#End|Update(w|
|00002580| 70 29 3b 09 09 09 09 09 | 09 09 09 2f 2f 20 52 65 |p);.....|...// Re|
|00002590| 73 74 6f 72 65 20 76 69 | 73 52 67 6e 0d 09 7d 0d |store vi|sRgn..}.|
|000025a0| 0d 2f 2a 0d 20 2a 20 44 | 4f 5f 47 52 4f 57 28 29 |./*. * D|O_GROW()|
|000025b0| 20 2d 20 48 61 6e 64 6c | 65 20 67 72 6f 77 2f 72 | - Handl|e grow/r|
|000025c0| 65 73 69 7a 65 20 6f 70 | 65 72 61 74 69 6f 6e 73 |esize op|erations|
|000025d0| 20 6f 6e 20 77 69 6e 64 | 6f 77 0d 20 2a 0d 20 2a | on wind|ow. *. *|
|000025e0| 20 49 6e 70 75 74 73 3a | 0d 20 2a 09 09 28 47 29 | Inputs:|. *..(G)|
|000025f0| 09 64 77 70 20 2d 2d 3e | 20 09 57 43 42 20 6f 66 |.dwp -->| .WCB of|
|00002600| 20 63 75 72 72 65 6e 74 | 20 77 69 6e 64 6f 77 0d | current| window.|
|00002610| 20 2a 09 09 28 47 29 09 | 45 76 65 6e 74 09 09 45 | *..(G).|Event..E|
|00002620| 76 65 6e 74 20 72 65 63 | 6f 72 64 20 66 6f 72 20 |vent rec|ord for |
|00002630| 63 6c 69 63 6b 20 69 6e | 20 67 72 6f 77 20 62 6f |click in| grow bo|
|00002640| 78 0d 20 2a 0d 20 2a 20 | 4f 75 74 70 75 74 73 3a |x. *. * |Outputs:|
|00002650| 0d 20 2a 09 09 6e 6f 6e | 65 0d 20 2a 0d 20 2a 20 |. *..non|e. *. * |
|00002660| 4d 75 63 68 20 6f 66 20 | 74 68 69 73 20 63 6f 64 |Much of |this cod|
|00002670| 65 20 69 73 20 73 6b 69 | 70 70 65 64 20 66 6f 72 |e is ski|pped for|
|00002680| 20 61 20 73 63 72 61 77 | 6c 20 77 69 6e 64 6f 77 | a scraw|l window|
|00002690| 2e 20 20 54 68 65 20 6f | 70 65 72 61 74 69 6f 6e |. The o|peration|
|000026a0| 73 0d 20 2a 20 64 6f 6e | 65 20 68 65 72 65 20 67 |s. * don|e here g|
|000026b0| 65 6e 65 72 61 74 65 20 | 61 6e 20 75 70 64 61 74 |enerate |an updat|
|000026c0| 65 20 65 76 65 6e 74 20 | 66 6f 72 20 74 68 65 20 |e event |for the |
|000026d0| 77 69 6e 64 6f 77 2e 20 | 20 4b 65 65 70 20 74 68 |window. | Keep th|
|000026e0| 69 73 20 69 6e 20 6d 69 | 6e 64 0d 20 2a 20 61 6e |is in mi|nd. * an|
|000026f0| 64 20 74 72 79 20 74 6f | 20 61 76 6f 69 64 20 72 |d try to| avoid r|
|00002700| 65 64 75 6e 64 61 6e 74 | 20 64 72 61 77 69 6e 67 |edundant| drawing|
|00002710| 2e 20 20 41 62 6f 76 65 | 20 61 6c 6c 20 2d 2d 20 |. Above| all -- |
|00002720| 61 76 6f 69 64 20 72 65 | 64 72 61 77 69 6e 67 20 |avoid re|drawing |
|00002730| 74 68 65 0d 20 2a 20 65 | 6e 74 69 72 65 20 77 69 |the. * e|ntire wi|
|00002740| 6e 64 6f 77 20 2e 2e 2e | 20 69 74 27 73 20 6a 75 |ndow ...| it's ju|
|00002750| 73 74 20 74 6f 6f 20 63 | 72 75 64 65 20 66 6f 72 |st too c|rude for|
|00002760| 20 74 68 65 20 4d 61 63 | 2e 0d 20 2a 2f 0d 64 6f | the Mac|.. */.do|
|00002770| 5f 67 72 6f 77 28 29 0d | 09 7b 0d 09 52 65 63 74 |_grow().|.{..Rect|
|00002780| 20 2a 70 72 3b 0d 09 52 | 65 63 74 20 74 65 6d 70 | *pr;..R|ect temp|
|00002790| 5f 72 65 63 74 3b 0d 09 | 75 6e 73 69 67 6e 65 64 |_rect;..|unsigned|
|000027a0| 20 6c 6f 6e 67 20 67 72 | 6f 77 5f 72 65 73 75 6c | long gr|ow_resul|
|000027b0| 74 3b 0d 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |t;..unsi|gned sho|
|000027c0| 72 74 20 68 65 69 67 68 | 74 2c 20 77 69 64 74 68 |rt heigh|t, width|
|000027d0| 3b 0d 09 0d 09 2f 2f 0d | 09 2f 2f 20 44 6f 20 74 |;....//.|.// Do t|
|000027e0| 68 65 20 67 72 6f 77 20 | 6f 70 65 72 61 74 69 6f |he grow |operatio|
|000027f0| 6e 20 77 68 69 6c 65 20 | 6d 6f 75 73 65 20 69 73 |n while |mouse is|
|00002800| 20 68 65 6c 64 20 64 6f | 77 6e 2e 20 20 57 68 65 | held do|wn. Whe|
|00002810| 6e 20 69 74 20 69 73 0d | 09 2f 2f 20 72 65 6c 65 |n it is.|.// rele|
|00002820| 61 73 65 64 2c 20 74 68 | 65 20 6e 65 77 20 68 65 |ased, th|e new he|
|00002830| 69 67 68 74 20 61 6e 64 | 20 77 69 64 74 68 20 6f |ight and| width o|
|00002840| 66 20 74 68 65 20 77 69 | 6e 64 6f 77 20 61 72 65 |f the wi|ndow are|
|00002850| 20 72 65 74 75 72 6e 65 | 64 0d 09 2f 2f 20 70 61 | returne|d..// pa|
|00002860| 63 6b 65 64 20 69 6e 20 | 61 20 6c 6f 6e 67 77 6f |cked in |a longwo|
|00002870| 72 64 2e 20 20 4e 6f 74 | 65 20 74 68 61 74 20 61 |rd. Not|e that a|
|00002880| 20 7a 65 72 6f 20 72 65 | 73 75 6c 74 20 69 6e 64 | zero re|sult ind|
|00002890| 69 63 61 74 65 73 20 6e | 6f 0d 09 2f 2f 20 63 68 |icates n|o..// ch|
|000028a0| 61 6e 67 65 2c 20 61 6e | 64 20 77 65 20 63 61 6e |ange, an|d we can|
|000028b0| 20 73 6b 69 70 20 74 68 | 69 73 20 77 68 6f 6c 65 | skip th|is whole|
|000028c0| 20 74 68 69 6e 67 2e 0d | 09 2f 2f 0d 09 67 72 6f | thing..|.//..gro|
|000028d0| 77 5f 72 65 73 75 6c 74 | 20 3d 20 23 47 72 6f 77 |w_result| = #Grow|
|000028e0| 57 69 6e 64 6f 77 28 64 | 77 70 2d 3e 77 70 2c 26 |Window(d|wp->wp,&|
|000028f0| 45 76 65 6e 74 2e 77 68 | 65 72 65 2c 20 26 64 77 |Event.wh|ere, &dw|
|00002900| 70 2d 3e 67 72 6f 77 5f | 72 65 63 74 29 3b 0d 09 |p->grow_|rect);..|
|00002910| 69 66 28 67 72 6f 77 5f | 72 65 73 75 6c 74 20 3d |if(grow_|result =|
|00002920| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 3b 0d 09 |= 0)...r|eturn;..|
|00002930| 68 65 69 67 68 74 20 3d | 20 28 75 6e 73 69 67 6e |height =| (unsign|
|00002940| 65 64 20 73 68 6f 72 74 | 29 23 48 69 57 6f 72 64 |ed short|)#HiWord|
|00002950| 28 67 72 6f 77 5f 72 65 | 73 75 6c 74 29 3b 0d 09 |(grow_re|sult);..|
|00002960| 77 69 64 74 68 20 3d 20 | 28 75 6e 73 69 67 6e 65 |width = |(unsigne|
|00002970| 64 20 73 68 6f 72 74 29 | 23 4c 6f 57 6f 72 64 28 |d short)|#LoWord(|
|00002980| 67 72 6f 77 5f 72 65 73 | 75 6c 74 29 3b 0d 09 23 |grow_res|ult);..#|
|00002990| 53 65 74 50 6f 72 74 28 | 64 77 70 2d 3e 77 70 29 |SetPort(|dwp->wp)|
|000029a0| 3b 09 09 09 09 09 09 09 | 09 2f 2f 20 48 6f 6f 6b |;.......|.// Hook|
|000029b0| 20 75 70 20 51 75 69 63 | 6b 64 72 61 77 20 2e 2e | up Quic|kdraw ..|
|000029c0| 2e 0d 09 70 72 20 3d 20 | 26 28 28 64 77 70 2d 3e |...pr = |&((dwp->|
|000029d0| 77 70 29 2d 3e 70 6f 72 | 74 52 65 63 74 29 3b 09 |wp)->por|tRect);.|
|000029e0| 09 09 09 09 2f 2f 20 70 | 72 20 2d 2d 3e 20 6e 65 |....// p|r --> ne|
|000029f0| 77 20 70 6f 72 74 52 65 | 63 74 20 6f 66 20 77 69 |w portRe|ct of wi|
|00002a00| 6e 64 6f 77 0d 09 0d 09 | 69 66 28 64 77 70 2d 3e |ndow....|if(dwp->|
|00002a10| 74 65 5f 68 61 6e 64 6c | 65 20 21 3d 20 30 29 09 |te_handl|e != 0).|
|00002a20| 09 09 09 09 09 09 2f 2f | 20 54 65 78 74 45 64 69 |......//| TextEdi|
|00002a30| 74 20 77 69 6e 64 6f 77 | 73 20 6f 6e 6c 79 0d 09 |t window|s only..|
|00002a40| 09 7b 0d 09 09 2f 2f 0d | 09 09 2f 2f 20 54 68 65 |.{...//.|..// The|
|00002a50| 20 73 63 72 6f 6c 6c 20 | 62 61 72 73 20 6d 75 73 | scroll |bars mus|
|00002a60| 74 20 62 65 20 6d 61 6e | 75 61 6c 6c 79 20 61 63 |t be man|ually ac|
|00002a70| 63 75 6d 75 6c 61 74 65 | 64 20 69 6e 74 6f 20 74 |cumulate|d into t|
|00002a80| 68 65 20 75 70 64 61 74 | 65 0d 09 09 2f 2f 20 72 |he updat|e...// r|
|00002a90| 65 67 69 6f 6e 2e 20 20 | 53 65 65 20 74 68 65 20 |egion. |See the |
|00002aa0| 77 69 6e 64 6f 77 20 6d | 61 6e 61 67 65 72 20 6d |window m|anager m|
|00002ab0| 61 6e 75 61 6c 20 66 6f | 72 20 61 20 66 61 69 72 |anual fo|r a fair|
|00002ac0| 6c 79 20 6c 75 63 69 64 | 0d 09 09 2f 2f 20 65 78 |ly lucid|...// ex|
|00002ad0| 70 6c 61 6e 61 74 69 6f | 6e 20 6f 66 20 74 68 69 |planatio|n of thi|
|00002ae0| 73 2e 20 20 57 65 20 61 | 6c 73 6f 20 68 61 76 65 |s. We a|lso have|
|00002af0| 20 74 6f 20 69 6e 76 61 | 6c 69 64 61 74 65 20 74 | to inva|lidate t|
|00002b00| 68 65 20 73 69 7a 65 20 | 62 6f 78 2e 0d 09 09 2f |he size |box..../|
|00002b10| 2f 20 4e 6f 74 65 20 77 | 65 20 61 72 65 20 6d 61 |/ Note w|e are ma|
|00002b20| 6b 69 6e 67 20 61 73 73 | 75 6d 70 74 69 6f 6e 73 |king ass|umptions|
|00002b30| 20 68 65 72 65 20 61 62 | 6f 75 74 20 74 68 65 20 | here ab|out the |
|00002b40| 73 69 7a 65 20 61 6e 64 | 20 6c 6f 63 61 74 69 6f |size and| locatio|
|00002b50| 6e 0d 09 09 2f 2f 20 6f | 66 20 74 68 65 20 73 63 |n...// o|f the sc|
|00002b60| 72 6f 6c 6c 65 72 73 2e | 20 20 54 68 69 73 20 73 |rollers.| This s|
|00002b70| 74 75 66 66 20 68 61 6e | 64 6c 65 73 20 74 68 65 |tuff han|dles the|
|00002b80| 20 63 61 73 65 20 77 68 | 65 72 65 20 74 68 65 20 | case wh|ere the |
|00002b90| 77 69 6e 64 6f 77 0d 09 | 09 2f 2f 20 65 6e 6c 61 |window..|.// enla|
|00002ba0| 72 67 65 73 2e 20 20 54 | 68 65 20 63 61 6c 6c 73 |rges. T|he calls|
|00002bb0| 20 74 6f 20 44 72 61 77 | 43 6f 6e 74 72 6f 6c 73 | to Draw|Controls|
|00002bc0| 20 61 6e 64 20 44 72 61 | 77 47 72 6f 77 49 63 6f | and Dra|wGrowIco|
|00002bd0| 6e 20 69 6e 20 74 68 65 | 20 0d 09 09 2f 2f 20 75 |n in the| ...// u|
|00002be0| 70 64 61 74 65 20 65 76 | 65 6e 74 20 68 61 6e 64 |pdate ev|ent hand|
|00002bf0| 6c 65 72 20 74 61 6b 65 | 20 63 61 72 65 20 6f 66 |ler take| care of|
|00002c00| 20 74 68 65 20 73 68 72 | 69 6e 6b 20 63 61 73 65 | the shr|ink case|
|00002c10| 2e 0d 09 09 2f 2f 0d 09 | 09 74 65 6d 70 5f 72 65 |....//..|.temp_re|
|00002c20| 63 74 2e 74 6f 70 20 3d | 20 70 72 2d 3e 74 6f 70 |ct.top =| pr->top|
|00002c30| 3b 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 62 6f |;...temp|_rect.bo|
|00002c40| 74 74 6f 6d 20 3d 20 70 | 72 2d 3e 62 6f 74 74 6f |ttom = p|r->botto|
|00002c50| 6d 3b 0d 09 09 74 65 6d | 70 5f 72 65 63 74 2e 72 |m;...tem|p_rect.r|
|00002c60| 69 67 68 74 20 3d 20 70 | 72 2d 3e 72 69 67 68 74 |ight = p|r->right|
|00002c70| 3b 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 6c 65 |;...temp|_rect.le|
|00002c80| 66 74 20 3d 20 74 65 6d | 70 5f 72 65 63 74 2e 72 |ft = tem|p_rect.r|
|00002c90| 69 67 68 74 20 2d 20 31 | 36 3b 09 2f 2f 20 52 69 |ight - 1|6;.// Ri|
|00002ca0| 67 68 74 20 68 61 6e 64 | 20 31 36 20 70 69 78 65 |ght hand| 16 pixe|
|00002cb0| 6c 73 0d 09 09 23 49 6e | 76 61 6c 52 65 63 74 28 |ls...#In|valRect(|
|00002cc0| 26 74 65 6d 70 5f 72 65 | 63 74 29 3b 09 09 09 09 |&temp_re|ct);....|
|00002cd0| 09 09 2f 2f 20 41 64 64 | 20 69 74 20 74 6f 20 74 |..// Add| it to t|
|00002ce0| 68 65 20 75 70 64 61 74 | 65 20 72 65 67 69 6f 6e |he updat|e region|
|00002cf0| 0d 09 09 74 65 6d 70 5f | 72 65 63 74 2e 74 6f 70 |...temp_|rect.top|
|00002d00| 20 3d 20 74 65 6d 70 5f | 72 65 63 74 2e 62 6f 74 | = temp_|rect.bot|
|00002d10| 74 6f 6d 20 2d 20 31 36 | 3b 09 2f 2f 20 53 69 7a |tom - 16|;.// Siz|
|00002d20| 65 20 62 6f 78 0d 09 09 | 23 45 72 61 73 65 52 65 |e box...|#EraseRe|
|00002d30| 63 74 28 26 74 65 6d 70 | 5f 72 65 63 74 29 3b 09 |ct(&temp|_rect);.|
|00002d40| 09 09 09 09 09 2f 2f 20 | 45 72 61 73 65 20 73 69 |.....// |Erase si|
|00002d50| 7a 65 20 62 6f 78 20 28 | 57 48 59 3f 3f 3f 3f 3f |ze box (|WHY?????|
|00002d60| 29 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 6c 65 |)...temp|_rect.le|
|00002d70| 66 74 20 3d 20 70 72 2d | 3e 6c 65 66 74 3b 09 09 |ft = pr-|>left;..|
|00002d80| 09 09 09 2f 2f 20 42 6f | 74 74 6f 6d 20 31 36 20 |...// Bo|ttom 16 |
|00002d90| 70 69 78 65 6c 73 0d 09 | 09 23 49 6e 76 61 6c 52 |pixels..|.#InvalR|
|00002da0| 65 63 74 28 26 74 65 6d | 70 5f 72 65 63 74 29 3b |ect(&tem|p_rect);|
|00002db0| 09 09 09 09 09 09 2f 2f | 20 41 64 64 20 69 74 20 |......//| Add it |
|00002dc0| 74 6f 20 74 68 65 20 75 | 70 64 61 74 65 20 72 65 |to the u|pdate re|
|00002dd0| 67 69 6f 6e 0d 09 09 7d | 0d 09 0d 09 2f 2f 0d 09 |gion...}|....//..|
|00002de0| 2f 2f 20 4e 6f 77 20 77 | 65 20 72 65 2d 73 69 7a |// Now w|e re-siz|
|00002df0| 65 20 61 6e 64 20 73 65 | 74 20 75 70 64 61 74 65 |e and se|t update|
|00002e00| 20 6f 6e 20 74 68 65 20 | 77 69 6e 62 64 6f 77 2e | on the |winbdow.|
|00002e10| 20 20 54 68 65 6e 20 6d | 6f 76 65 20 61 6e 64 0d | Then m|ove and.|
|00002e20| 09 2f 2f 20 72 65 73 69 | 7a 65 20 74 68 65 20 63 |.// resi|ze the c|
|00002e30| 6f 6e 74 72 6f 6c 73 2e | 20 20 46 69 6e 61 6c 6c |ontrols.| Finall|
|00002e40| 79 2c 20 75 70 64 61 74 | 65 20 74 68 65 20 74 65 |y, updat|e the te|
|00002e50| 78 74 2d 65 64 69 74 20 | 22 76 69 65 77 52 65 63 |xt-edit |"viewRec|
|00002e60| 74 22 2e 0d 09 2f 2f 0d | 09 23 53 69 7a 65 57 69 |t"...//.|.#SizeWi|
|00002e70| 6e 64 6f 77 28 64 77 70 | 2d 3e 77 70 2c 20 77 69 |ndow(dwp|->wp, wi|
|00002e80| 64 74 68 2c 20 68 65 69 | 67 68 74 2c 20 54 52 55 |dth, hei|ght, TRU|
|00002e90| 45 29 3b 20 2f 2f 20 52 | 65 73 69 7a 65 20 26 20 |E); // R|esize & |
|00002ea0| 73 74 61 72 74 20 75 70 | 64 61 74 65 20 72 67 6e |start up|date rgn|
|00002eb0| 0d 0d 09 69 66 28 64 77 | 70 2d 3e 74 65 5f 68 61 |...if(dw|p->te_ha|
|00002ec0| 6e 64 6c 65 20 21 3d 20 | 30 29 09 09 09 09 09 09 |ndle != |0)......|
|00002ed0| 2f 2f 20 4f 6e 6c 79 20 | 66 6f 72 20 54 65 78 74 |// Only |for Text|
|00002ee0| 45 64 69 74 20 77 69 6e | 64 6f 77 73 20 2e 2e 2e |Edit win|dows ...|
|00002ef0| 0d 09 09 7b 0d 09 09 23 | 4d 6f 76 65 43 6f 6e 74 |...{...#|MoveCont|
|00002f00| 72 6f 6c 28 64 77 70 2d | 3e 76 73 5f 68 61 6e 64 |rol(dwp-|>vs_hand|
|00002f10| 6c 65 2c 20 70 72 2d 3e | 72 69 67 68 74 20 2d 20 |le, pr->|right - |
|00002f20| 31 35 2c 20 70 72 2d 3e | 74 6f 70 20 2d 20 31 29 |15, pr->|top - 1)|
|00002f30| 3b 0d 09 09 23 53 69 7a | 65 43 6f 6e 74 72 6f 6c |;...#Siz|eControl|
|00002f40| 28 64 77 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 2c |(dwp->vs|_handle,|
|00002f50| 20 31 36 2c 28 70 72 2d | 3e 62 6f 74 74 6f 6d 20 | 16,(pr-|>bottom |
|00002f60| 2d 20 70 72 2d 3e 74 6f | 70 20 2d 20 31 33 29 29 |- pr->to|p - 13))|
|00002f70| 3b 0d 0d 09 09 23 4d 6f | 76 65 43 6f 6e 74 72 6f |;....#Mo|veContro|
|00002f80| 6c 28 64 77 70 2d 3e 68 | 73 5f 68 61 6e 64 6c 65 |l(dwp->h|s_handle|
|00002f90| 2c 20 70 72 2d 3e 6c 65 | 66 74 20 2d 20 31 2c 20 |, pr->le|ft - 1, |
|00002fa0| 70 72 2d 3e 62 6f 74 74 | 6f 6d 20 2d 20 31 35 29 |pr->bott|om - 15)|
|00002fb0| 3b 20 0d 09 09 23 53 69 | 7a 65 43 6f 6e 74 72 6f |; ...#Si|zeContro|
|00002fc0| 6c 28 64 77 70 2d 3e 68 | 73 5f 68 61 6e 64 6c 65 |l(dwp->h|s_handle|
|00002fd0| 2c 20 28 70 72 2d 3e 72 | 69 67 68 74 20 2d 20 70 |, (pr->r|ight - p|
|00002fe0| 72 2d 3e 6c 65 66 74 20 | 2d 20 31 33 29 2c 20 31 |r->left |- 13), 1|
|00002ff0| 36 29 3b 0d 0d 09 09 2f | 2f 0d 09 09 2f 2f 20 4e |6);..../|/...// N|
|00003000| 6f 74 65 20 74 68 65 20 | 64 69 72 65 63 74 20 61 |ote the |direct a|
|00003010| 63 63 65 73 73 20 74 6f | 20 54 45 27 73 20 76 69 |ccess to| TE's vi|
|00003020| 65 77 20 72 65 63 74 20 | 76 69 61 20 74 68 65 20 |ew rect |via the |
|00003030| 68 61 6e 64 6c 65 0d 09 | 09 2f 2f 20 77 65 20 73 |handle..|.// we s|
|00003040| 74 6f 72 65 64 20 69 6e | 20 6f 75 72 20 57 43 42 |tored in| our WCB|
|00003050| 2e 0d 09 09 2f 2f 0d 09 | 09 63 61 6c 63 5f 76 72 |....//..|.calc_vr|
|00003060| 65 63 74 28 70 72 2c 20 | 26 28 28 2a 28 64 77 70 |ect(pr, |&((*(dwp|
|00003070| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 29 29 2d 3e 76 |->te_han|dle))->v|
|00003080| 69 65 77 52 65 63 74 29 | 29 3b 09 0d 09 09 7d 0d |iewRect)|);....}.|
|00003090| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 43 41 4c 43 5f 56 |.}../*. |* CALC_V|
|000030a0| 52 45 43 54 28 29 20 2d | 20 4d 61 6b 65 20 61 20 |RECT() -| Make a |
|000030b0| 54 65 78 74 45 64 69 74 | 20 76 69 65 77 52 65 63 |TextEdit| viewRec|
|000030c0| 74 20 66 72 6f 6d 20 70 | 6f 72 74 52 65 63 74 0d |t from p|ortRect.|
|000030d0| 20 2a 0d 20 2a 20 49 6e | 70 75 74 73 3a 0d 20 2a | *. * In|puts:. *|
|000030e0| 09 09 70 72 09 2d 2d 3e | 09 57 69 6e 64 6f 77 27 |..pr.-->|.Window'|
|000030f0| 73 20 70 6f 72 74 52 65 | 63 74 0d 20 2a 09 09 76 |s portRe|ct. *..v|
|00003100| 72 09 2d 2d 3e 09 77 68 | 65 72 65 20 74 6f 20 66 |r.-->.wh|ere to f|
|00003110| 69 6c 6c 20 69 6e 20 76 | 69 65 77 52 65 63 74 0d |ill in v|iewRect.|
|00003120| 20 2a 0d 20 2a 20 4f 75 | 74 70 75 74 73 3a 0d 20 | *. * Ou|tputs:. |
|00003130| 2a 09 09 76 72 2d 3e 74 | 6f 70 4c 65 66 74 20 61 |*..vr->t|opLeft a|
|00003140| 6e 64 20 76 72 2d 3e 62 | 6f 74 52 69 67 68 74 20 |nd vr->b|otRight |
|00003150| 61 72 65 20 66 69 6c 6c | 65 64 20 69 6e 0d 20 2a |are fill|ed in. *|
|00003160| 0d 20 2a 20 54 68 65 20 | 54 65 78 74 45 64 69 74 |. * The |TextEdit|
|00003170| 20 76 69 65 77 52 65 63 | 74 20 69 73 20 73 65 74 | viewRec|t is set|
|00003180| 20 75 70 20 74 6f 20 70 | 72 6f 76 69 64 65 20 31 | up to p|rovide 1|
|00003190| 35 2d 70 69 78 65 6c 20 | 73 74 72 69 70 73 20 61 |5-pixel |strips a|
|000031a0| 6c 6f 6e 67 0d 20 2a 20 | 74 68 65 20 72 69 67 68 |long. * |the righ|
|000031b0| 74 20 68 61 6e 64 20 61 | 6e 64 20 62 6f 74 74 6f |t hand a|nd botto|
|000031c0| 6d 20 65 64 67 65 73 20 | 6f 66 20 74 68 65 20 64 |m edges |of the d|
|000031d0| 64 69 74 69 6e 67 20 77 | 69 6e 64 6f 77 20 28 66 |diting w|indow (f|
|000031e0| 6f 72 20 73 63 72 6f 6c | 6c 65 72 73 0d 20 2a 20 |or scrol|lers. * |
|000031f0| 61 6e 64 20 74 68 65 20 | 73 69 7a 65 20 62 6f 78 |and the |size box|
|00003200| 2e 20 49 74 20 61 6c 73 | 6f 20 70 72 6f 76 69 64 |. It als|o provid|
|00003210| 65 73 20 61 20 34 2d 70 | 69 78 65 6c 20 22 62 6c |es a 4-p|ixel "bl|
|00003220| 65 65 64 22 20 61 74 20 | 74 68 65 20 6c 65 66 74 |eed" at |the left|
|00003230| 20 65 64 67 65 2e 0d 20 | 2a 20 61 6e 64 20 61 74 | edge.. |* and at|
|00003240| 20 74 68 65 20 74 6f 70 | 2e 0d 20 2a 2f 0d 63 61 | the top|.. */.ca|
|00003250| 6c 63 5f 76 72 65 63 74 | 28 70 72 2c 20 76 72 29 |lc_vrect|(pr, vr)|
|00003260| 0d 52 65 63 74 20 2a 70 | 72 3b 0d 52 65 63 74 20 |.Rect *p|r;.Rect |
|00003270| 2a 76 72 3b 0d 09 7b 0d | 09 76 72 2d 3e 74 6f 70 |*vr;..{.|.vr->top|
|00003280| 20 3d 20 70 72 2d 3e 74 | 6f 70 20 2b 20 34 3b 0d | = pr->t|op + 4;.|
|00003290| 09 76 72 2d 3e 6c 65 66 | 74 20 3d 20 70 72 2d 3e |.vr->lef|t = pr->|
|000032a0| 6c 65 66 74 20 2b 20 34 | 3b 0d 09 76 72 2d 3e 62 |left + 4|;..vr->b|
|000032b0| 6f 74 74 6f 6d 20 3d 20 | 70 72 2d 3e 62 6f 74 74 |ottom = |pr->bott|
|000032c0| 6f 6d 20 2d 20 31 35 3b | 0d 09 76 72 2d 3e 72 69 |om - 15;|..vr->ri|
|000032d0| 67 68 74 20 3d 20 70 72 | 2d 3e 72 69 67 68 74 20 |ght = pr|->right |
|000032e0| 2d 20 31 35 3b 0d 09 7d | 0d 0d 2f 2a 0d 20 2a 20 |- 15;..}|../*. * |
|000032f0| 50 41 47 45 5f 53 43 52 | 4f 4c 4c 28 29 20 2d 20 |PAGE_SCR|OLL() - |
|00003300| 53 63 72 6f 6c 6c 20 61 | 20 70 61 67 65 20 70 65 |Scroll a| page pe|
|00003310| 72 20 69 6e 64 69 63 61 | 74 6f 72 0d 20 2a 0d 20 |r indica|tor. *. |
|00003320| 2a 09 49 6e 70 75 74 73 | 3a 0d 20 2a 09 09 70 61 |*.Inputs|:. *..pa|
|00003330| 72 74 09 09 50 61 72 74 | 20 63 6f 64 65 20 77 68 |rt..Part| code wh|
|00003340| 65 72 65 20 66 69 72 73 | 74 20 63 6c 69 63 6b 65 |ere firs|t clicke|
|00003350| 64 20 64 6f 77 6e 0d 20 | 2a 09 09 63 68 09 09 09 |d down. |*..ch...|
|00003360| 63 6f 6e 74 72 6f 6c 20 | 68 61 6e 64 6c 65 0d 20 |control |handle. |
|00003370| 2a 09 09 64 69 72 09 09 | 64 69 72 65 63 74 69 6f |*..dir..|directio|
|00003380| 6e 20 28 2d 31 20 3d 20 | 75 70 2c 20 2b 31 20 3d |n (-1 = |up, +1 =|
|00003390| 20 64 6f 77 6e 29 0d 20 | 2a 0d 20 2a 20 4f 75 74 | down). |*. * Out|
|000033a0| 70 75 74 73 3a 0d 20 2a | 09 09 6e 6f 6e 65 0d 20 |puts:. *|..none. |
|000033b0| 2a 2f 0d 70 61 67 65 5f | 73 63 72 6f 6c 6c 28 70 |*/.page_|scroll(p|
|000033c0| 61 72 74 2c 20 63 68 2c | 20 64 69 72 29 0d 73 68 |art, ch,| dir).sh|
|000033d0| 6f 72 74 20 70 61 72 74 | 3b 0d 43 6f 6e 74 72 6f |ort part|;.Contro|
|000033e0| 6c 48 61 6e 64 6c 65 20 | 63 68 3b 0d 73 68 6f 72 |lHandle |ch;.shor|
|000033f0| 74 20 64 69 72 3b 0d 09 | 7b 0d 09 50 6f 69 6e 74 |t dir;..|{..Point|
|00003400| 20 63 75 72 5f 70 74 3b | 0d 09 73 68 6f 72 74 20 | cur_pt;|..short |
|00003410| 61 6d 6f 75 6e 74 3b 0d | 09 52 65 63 74 20 2a 76 |amount;.|.Rect *v|
|00003420| 72 3b 0d 09 0d 09 2f 2f | 0d 09 2f 2f 20 46 69 72 |r;....//|..// Fir|
|00003430| 73 74 2c 20 63 61 6c 63 | 75 6c 61 74 65 20 74 68 |st, calc|ulate th|
|00003440| 65 20 22 70 61 67 65 20 | 73 69 7a 65 22 20 69 6e |e "page |size" in|
|00003450| 20 70 69 78 65 6c 73 2e | 20 20 46 6f 72 20 56 20 | pixels.| For V |
|00003460| 73 63 72 6f 6c 6c 2c 20 | 69 74 20 69 73 0d 09 2f |scroll, |it is../|
|00003470| 2f 20 74 68 65 20 76 69 | 65 77 52 65 63 74 20 68 |/ the vi|ewRect h|
|00003480| 65 69 67 68 74 20 6c 65 | 73 73 20 74 68 65 20 6c |eight le|ss the l|
|00003490| 69 6e 65 20 68 65 69 67 | 68 74 2e 20 20 46 6f 72 |ine heig|ht. For|
|000034a0| 20 48 20 73 63 72 6f 6c | 6c 2c 20 69 74 20 69 73 | H scrol|l, it is|
|000034b0| 0d 09 2f 2f 20 68 61 6c | 66 20 74 68 65 20 77 69 |..// hal|f the wi|
|000034c0| 64 74 68 20 6f 66 20 74 | 68 65 20 76 69 65 77 52 |dth of t|he viewR|
|000034d0| 65 63 74 2e 0d 09 2f 2f | 0d 09 76 72 20 3d 20 26 |ect...//|..vr = &|
|000034e0| 28 28 2a 28 64 77 70 2d | 3e 74 65 5f 68 61 6e 64 |((*(dwp-|>te_hand|
|000034f0| 6c 65 29 29 2d 3e 76 69 | 65 77 52 65 63 74 29 3b |le))->vi|ewRect);|
|00003500| 09 2f 2f 20 76 72 20 2d | 3e 20 63 75 72 72 65 6e |.// vr -|> curren|
|00003510| 74 20 56 69 65 77 52 65 | 63 74 0d 09 69 66 28 63 |t ViewRe|ct..if(c|
|00003520| 68 20 3d 3d 20 64 77 70 | 2d 3e 76 73 5f 68 61 6e |h == dwp|->vs_han|
|00003530| 64 6c 65 29 09 09 09 09 | 09 09 2f 2f 20 49 66 20 |dle)....|..// If |
|00003540| 74 68 69 73 20 69 73 20 | 74 68 65 20 76 65 72 74 |this is |the vert|
|00003550| 69 63 61 6c 20 73 63 72 | 6f 6c 6c 65 72 0d 09 09 |ical scr|oller...|
|00003560| 61 6d 6f 75 6e 74 20 3d | 20 76 72 2d 3e 62 6f 74 |amount =| vr->bot|
|00003570| 74 6f 6d 20 2d 20 76 72 | 2d 3e 74 6f 70 20 2d 20 |tom - vr|->top - |
|00003580| 28 73 68 6f 72 74 29 67 | 65 74 5f 6c 68 28 29 3b |(short)g|et_lh();|
|00003590| 0d 09 65 6c 73 65 09 09 | 09 09 09 09 09 09 09 09 |..else..|........|
|000035a0| 09 09 2f 2f 20 48 6f 72 | 69 7a 20 73 63 72 6f 6c |..// Hor|iz scrol|
|000035b0| 6c 0d 09 09 61 6d 6f 75 | 6e 74 20 3d 20 28 76 72 |l...amou|nt = (vr|
|000035c0| 2d 3e 72 69 67 68 74 20 | 2d 20 76 72 2d 3e 6c 65 |->right |- vr->le|
|000035d0| 66 74 29 20 2f 20 32 3b | 0d 09 61 6d 6f 75 6e 74 |ft) / 2;|..amount|
|000035e0| 20 2a 3d 20 64 69 72 3b | 09 09 09 09 09 09 09 09 | *= dir;|........|
|000035f0| 09 2f 2f 20 43 68 61 6e | 67 65 20 73 69 67 6e 20 |.// Chan|ge sign |
|00003600| 70 65 72 20 72 65 71 75 | 69 72 65 6d 65 6e 74 73 |per requ|irements|
|00003610| 0d 0d 09 2f 2f 0d 09 2f | 2f 20 4e 6f 77 20 77 65 |...//../|/ Now we|
|00003620| 20 6d 75 73 74 20 6c 6f | 63 61 6c 6c 79 20 68 61 | must lo|cally ha|
|00003630| 6e 64 6c 65 20 74 68 65 | 20 6d 6f 75 73 65 20 70 |ndle the| mouse p|
|00003640| 65 72 20 74 68 65 20 4d | 61 63 69 6e 74 6f 73 68 |er the M|acintosh|
|00003650| 20 49 6e 74 65 72 66 61 | 63 65 0d 09 2f 2f 20 47 | Interfa|ce..// G|
|00003660| 75 69 64 65 6c 69 6e 65 | 73 2e 20 20 4c 6f 6f 6b |uideline|s. Look|
|00003670| 20 63 6c 6f 73 65 6c 79 | 20 61 74 20 74 68 69 73 | closely| at this|
|00003680| 20 63 6f 64 65 20 61 6e | 64 20 6e 6f 74 65 20 77 | code an|d note w|
|00003690| 68 61 74 20 69 74 20 72 | 65 61 6c 6c 79 0d 09 2f |hat it r|eally../|
|000036a0| 2f 20 64 6f 65 73 20 2e | 2e 2e 0d 09 2f 2f 0d 09 |/ does .|....//..|
|000036b0| 64 6f 09 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |do......|......./|
|000036c0| 2f 20 44 6f 20 74 68 69 | 73 20 6f 6e 63 65 20 65 |/ Do thi|s once e|
|000036d0| 76 65 6e 20 69 66 20 6d | 6f 75 73 65 20 69 73 0d |ven if m|ouse is.|
|000036e0| 09 09 7b 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |..{.....|......./|
|000036f0| 2f 20 20 20 75 70 20 62 | 79 20 6e 6f 77 20 2e 2e |/ up b|y now ..|
|00003700| 2e 0d 09 09 23 47 65 74 | 4d 6f 75 73 65 28 26 63 |....#Get|Mouse(&c|
|00003710| 75 72 5f 70 74 29 3b 09 | 09 09 09 09 09 2f 2f 20 |ur_pt);.|.....// |
|00003720| 47 65 74 20 63 75 72 72 | 65 6e 74 20 6d 6f 75 73 |Get curr|ent mous|
|00003730| 65 0d 09 09 69 66 28 28 | 73 68 6f 72 74 29 23 54 |e...if((|short)#T|
|00003740| 65 73 74 43 6f 6e 74 72 | 6f 6c 28 63 68 2c 20 26 |estContr|ol(ch, &|
|00003750| 63 75 72 5f 70 74 29 20 | 21 3d 20 70 61 72 74 29 |cur_pt) |!= part)|
|00003760| 09 2f 2f 20 49 66 20 6f | 75 74 20 6f 66 20 6f 72 |.// If o|ut of or|
|00003770| 69 67 69 6e 61 6c 20 70 | 61 72 74 0d 09 09 09 63 |iginal p|art....c|
|00003780| 6f 6e 74 69 6e 75 65 3b | 09 09 09 09 09 09 09 09 |ontinue;|........|
|00003790| 2f 2f 20 44 6f 6e 27 74 | 20 64 6f 20 61 6e 79 74 |// Don't| do anyt|
|000037a0| 68 69 6e 67 0d 09 09 23 | 53 65 74 43 74 6c 56 61 |hing...#|SetCtlVa|
|000037b0| 6c 75 65 28 63 68 2c 20 | 23 47 65 74 43 74 6c 56 |lue(ch, |#GetCtlV|
|000037c0| 61 6c 75 65 28 63 68 29 | 20 2b 20 61 6d 6f 75 6e |alue(ch)| + amoun|
|000037d0| 74 29 3b 09 2f 2f 20 50 | 61 67 65 20 63 6f 6e 74 |t);.// P|age cont|
|000037e0| 72 6f 6c 20 76 61 6c 75 | 65 0d 09 09 65 64 69 74 |rol valu|e...edit|
|000037f0| 5f 73 63 72 6f 6c 6c 28 | 29 3b 09 09 09 09 09 09 |_scroll(|);......|
|00003800| 09 09 2f 2f 20 50 61 67 | 65 20 74 68 65 20 74 65 |..// Pag|e the te|
|00003810| 78 74 0d 09 09 7d 20 77 | 68 69 6c 65 28 23 53 74 |xt...} w|hile(#St|
|00003820| 69 6c 6c 44 6f 77 6e 28 | 29 29 3b 0d 09 7d 0d 09 |illDown(|));..}..|
|00003830| 09 0d 0d 2f 2a 0d 20 2a | 20 53 43 52 4f 4c 4c 5f |.../*. *| SCROLL_|
|00003840| 55 50 28 29 20 2d 20 53 | 63 72 6f 6c 6c 20 75 70 |UP() - S|croll up|
|00003850| 20 61 20 74 65 78 74 20 | 65 64 69 74 20 77 69 6e | a text |edit win|
|00003860| 64 6f 77 0d 20 2a 0d 20 | 2a 20 54 68 69 73 20 72 |dow. *. |* This r|
|00003870| 6f 75 74 69 6e 65 20 69 | 73 20 63 61 6c 6c 65 64 |outine i|s called|
|00003880| 20 62 61 63 6b 20 66 72 | 6f 6d 20 74 68 65 20 74 | back fr|om the t|
|00003890| 6f 6f 6c 62 6f 78 20 77 | 69 74 68 20 28 6e 61 74 |oolbox w|ith (nat|
|000038a0| 75 72 61 6c 6c 79 29 0d | 20 2a 20 50 61 73 63 61 |urally).| * Pasca|
|000038b0| 6c 2d 66 6c 61 76 6f 72 | 65 64 20 61 72 67 75 6d |l-flavor|ed argum|
|000038c0| 65 6e 74 73 20 6f 6e 20 | 74 68 65 20 73 74 61 63 |ents on |the stac|
|000038d0| 6b 2e 20 20 49 27 76 65 | 20 74 61 6b 65 6e 20 74 |k. I've| taken t|
|000038e0| 68 69 73 0d 20 2a 20 6f | 70 70 6f 72 74 75 6e 69 |his. * o|pportuni|
|000038f0| 74 79 20 74 6f 20 64 65 | 6d 6f 6e 73 74 72 61 74 |ty to de|monstrat|
|00003900| 65 20 69 6e 6c 69 6e 65 | 20 61 73 73 65 6d 62 6c |e inline| assembl|
|00003910| 79 20 6c 61 6e 67 75 61 | 67 65 20 61 6e 64 20 68 |y langua|ge and h|
|00003920| 6f 77 0d 20 2a 20 74 6f | 20 61 63 74 20 6c 69 6b |ow. * to| act lik|
|00003930| 65 20 61 20 50 61 73 63 | 61 6c 20 70 72 6f 63 65 |e a Pasc|al proce|
|00003940| 64 75 72 65 2e 0d 20 2a | 0d 20 2a 20 4e 6f 74 65 |dure.. *|. * Note|
|00003950| 20 74 68 61 74 20 74 68 | 65 20 73 63 72 6f 6c 6c | that th|e scroll|
|00003960| 65 64 20 61 6d 6f 75 6e | 74 20 69 73 20 65 71 75 |ed amoun|t is equ|
|00003970| 61 6c 20 74 6f 20 74 68 | 65 20 6c 69 6e 65 20 68 |al to th|e line h|
|00003980| 65 69 67 68 74 20 61 73 | 0d 20 2a 20 73 74 6f 72 |eight as|. * stor|
|00003990| 65 64 20 69 6e 20 74 68 | 65 20 54 65 78 74 45 64 |ed in th|e TextEd|
|000039a0| 69 74 20 72 65 63 6f 72 | 64 20 66 6f 72 20 62 6f |it recor|d for bo|
|000039b0| 74 68 20 76 65 72 74 69 | 63 61 6c 20 61 6e 64 20 |th verti|cal and |
|000039c0| 68 6f 72 69 7a 6f 6e 74 | 61 6c 0d 20 2a 20 73 63 |horizont|al. * sc|
|000039d0| 72 6f 6c 6c 69 6e 67 2e | 20 20 0d 20 2a 2f 0d 20 |rolling.| . */. |
|000039e0| 73 63 72 6f 6c 6c 5f 75 | 70 28 29 0d 20 09 7b 0d |scroll_u|p(). .{.|
|000039f0| 23 61 73 6d 0d 3b 0d 3b | 20 49 6e 70 75 74 73 3a |#asm.;.;| Inputs:|
|00003a00| 0d 3b 09 09 09 34 28 73 | 70 29 09 09 09 50 61 72 |.;...4(s|p)...Par|
|00003a10| 74 20 63 6f 64 65 20 28 | 69 6e 74 29 0d 3b 09 09 |t code (|int).;..|
|00003a20| 09 36 28 73 70 29 09 09 | 09 43 6f 6e 74 72 6f 6c |.6(sp)..|.Control|
|00003a30| 20 68 61 6e 64 6c 65 20 | 28 61 64 64 72 65 73 73 | handle |(address|
|00003a40| 29 0d 3b 0d 3b 20 4e 4f | 54 45 3a 09 49 20 68 61 |).;.; NO|TE:.I ha|
|00003a50| 76 65 20 64 6f 6e 65 20 | 74 68 65 20 75 6e 66 6f |ve done |the unfo|
|00003a60| 72 67 69 76 61 62 6c 65 | 20 26 20 65 78 74 72 61 |rgivable| & extra|
|00003a70| 63 74 65 64 20 74 68 65 | 20 74 72 61 70 20 76 61 |cted the| trap va|
|00003a80| 6c 75 65 73 0d 3b 09 09 | 09 66 72 6f 6d 20 74 68 |lues.;..|.from th|
|00003a90| 65 20 74 72 61 70 20 64 | 65 66 69 6e 69 74 69 6f |e trap d|efinitio|
|00003aa0| 6e 73 20 72 65 74 68 65 | 72 20 74 68 61 6e 20 69 |ns rethe|r than i|
|00003ab0| 6e 63 6c 75 64 65 20 74 | 68 65 20 44 20 66 69 6c |nclude t|he D fil|
|00003ac0| 65 2e 0d 3b 09 09 09 49 | 27 6d 20 69 6d 70 61 74 |e..;...I|'m impat|
|00003ad0| 69 65 6e 74 20 2e 2e 2e | 0d 3b 0d 09 09 4c 69 6e |ient ...|.;...Lin|
|00003ae0| 6b 09 09 61 36 2c 23 30 | 0d 09 09 4d 6f 76 65 2e |k..a6,#0|...Move.|
|00003af0| 57 09 38 28 61 36 29 2c | 64 30 09 09 09 3b 20 44 |W.8(a6),|d0...; D|
|00003b00| 30 20 3d 20 70 61 72 74 | 20 63 6f 64 65 20 28 57 |0 = part| code (W|
|00003b10| 29 0d 09 09 42 65 71 09 | 09 40 31 09 09 09 09 09 |)...Beq.|.@1.....|
|00003b20| 3b 20 28 30 20 6d 65 61 | 6e 73 20 6f 75 74 20 6f |; (0 mea|ns out o|
|00003b30| 66 20 70 61 72 74 20 72 | 65 67 69 6f 6e 29 0d 09 |f part r|egion)..|
|00003b40| 09 4d 6f 76 65 2e 4c 09 | 31 30 28 61 36 29 2c 2d |.Move.L.|10(a6),-|
|00003b50| 28 73 70 29 09 3b 20 50 | 75 73 68 20 63 6f 6e 74 |(sp).; P|ush cont|
|00003b60| 72 6f 6c 20 68 61 6e 64 | 6c 65 20 28 66 6f 72 20 |rol hand|le (for |
|00003b70| 6c 61 74 65 72 29 0d 09 | 09 43 6c 72 2e 57 09 09 |later)..|.Clr.W..|
|00003b80| 2d 28 73 70 29 09 09 09 | 09 3b 20 47 65 74 73 20 |-(sp)...|.; Gets |
|00003b90| 63 6f 6e 74 72 6f 6c 20 | 76 61 6c 75 65 0d 09 09 |control |value...|
|00003ba0| 4d 6f 76 65 2e 4c 09 31 | 30 28 61 36 29 2c 2d 28 |Move.L.1|0(a6),-(|
|00003bb0| 73 70 29 09 3b 20 50 75 | 73 68 20 63 6f 6e 74 72 |sp).; Pu|sh contr|
|00003bc0| 6f 6c 20 68 61 6e 64 6c | 65 0d 09 09 44 43 2e 57 |ol handl|e...DC.W|
|00003bd0| 09 09 24 41 39 36 30 09 | 09 09 09 3b 20 5f 47 65 |..$A960.|...; _Ge|
|00003be0| 74 43 74 6c 56 61 6c 75 | 65 20 28 76 61 6c 75 65 |tCtlValu|e (value|
|00003bf0| 20 6f 6e 20 73 74 61 63 | 6b 29 0d 09 09 4a 73 72 | on stac|k)...Jsr|
|00003c00| 09 09 67 65 74 5f 6c 68 | 09 09 09 3b 20 44 30 20 |..get_lh|...; D0 |
|00003c10| 3d 20 74 65 78 74 20 6c | 69 6e 65 20 68 65 69 67 |= text l|ine heig|
|00003c20| 68 74 2c 20 70 69 78 65 | 6c 73 20 28 65 61 73 69 |ht, pixe|ls (easi|
|00003c30| 65 72 20 69 6e 20 43 29 | 0d 09 09 53 75 62 2e 57 |er in C)|...Sub.W|
|00003c40| 09 09 64 30 2c 28 73 70 | 29 09 09 09 3b 20 28 53 |..d0,(sp|)...; (S|
|00003c50| 50 29 20 3d 20 6e 65 77 | 20 63 6f 6e 74 72 6f 6c |P) = new| control|
|00003c60| 20 76 61 6c 75 65 0d 09 | 09 42 67 65 09 09 40 30 | value..|.Bge..@0|
|00003c70| 09 09 09 09 09 3b 20 28 | 6f 6b 2c 20 69 74 73 20 |.....; (|ok, its |
|00003c80| 70 6f 73 69 74 69 76 65 | 29 0d 09 09 43 6c 72 2e |positive|)...Clr.|
|00003c90| 57 09 09 28 73 70 29 09 | 09 09 09 3b 20 53 74 6f |W..(sp).|...; Sto|
|00003ca0| 70 20 63 6f 6e 74 72 6f | 6c 20 61 74 20 30 20 76 |p contro|l at 0 v|
|00003cb0| 61 6c 75 65 0d 40 30 3a | 09 44 43 2e 57 09 09 24 |alue.@0:|.DC.W..$|
|00003cc0| 41 39 36 33 09 09 09 09 | 3b 20 5f 53 65 74 43 74 |A963....|; _SetCt|
|00003cd0| 6c 56 61 6c 75 65 0d 09 | 09 4a 73 72 09 09 65 64 |lValue..|.Jsr..ed|
|00003ce0| 69 74 5f 73 63 72 6f 6c | 6c 09 09 3b 20 63 61 6c |it_scrol|l..; cal|
|00003cf0| 6c 20 43 20 74 65 78 74 | 20 73 63 72 6f 6c 6c 65 |l C text| scrolle|
|00003d00| 72 0d 40 31 3a 0d 09 09 | 55 6e 6c 6b 09 09 61 36 |r.@1:...|Unlk..a6|
|00003d10| 09 09 09 09 09 3b 20 22 | 73 74 61 6e 64 61 72 64 |.....; "|standard|
|00003d20| 22 20 50 61 73 63 61 6c | 20 72 6f 75 74 69 6e 65 |" Pascal| routine|
|00003d30| 20 65 78 69 74 20 2e 2e | 2e 0d 09 09 4d 6f 76 65 | exit ..|....Move|
|00003d40| 2e 6c 09 28 73 70 29 2b | 2c 61 30 0d 09 09 41 64 |.l.(sp)+|,a0...Ad|
|00003d50| 64 71 09 09 23 36 2c 73 | 70 0d 09 09 4a 6d 70 09 |dq..#6,s|p...Jmp.|
|00003d60| 09 28 61 30 29 0d 23 65 | 6e 64 61 73 6d 0d 09 7d |.(a0).#e|ndasm..}|
|00003d70| 0d 0d 2f 2a 0d 20 2a 20 | 53 43 52 4f 4c 4c 5f 44 |../*. * |SCROLL_D|
|00003d80| 4f 57 4e 28 29 20 2d 20 | 53 63 72 6f 6c 6c 20 64 |OWN() - |Scroll d|
|00003d90| 6f 77 6e 20 61 20 74 65 | 78 74 20 65 64 69 74 20 |own a te|xt edit |
|00003da0| 77 69 6e 64 6f 77 0d 20 | 2a 0d 20 2a 20 54 68 69 |window. |*. * Thi|
|00003db0| 73 20 72 6f 75 74 69 6e | 65 20 69 73 20 63 61 6c |s routin|e is cal|
|00003dc0| 6c 65 64 20 62 61 63 6b | 20 66 72 6f 6d 20 74 68 |led back| from th|
|00003dd0| 65 20 74 6f 6f 6c 62 6f | 78 20 77 69 74 68 20 28 |e toolbo|x with (|
|00003de0| 6e 61 74 75 72 61 6c 6c | 79 29 0d 20 2a 20 50 61 |naturall|y). * Pa|
|00003df0| 73 63 61 6c 2d 66 6c 61 | 76 6f 72 65 64 20 61 72 |scal-fla|vored ar|
|00003e00| 67 75 6d 65 6e 74 73 20 | 6f 6e 20 74 68 65 20 73 |guments |on the s|
|00003e10| 74 61 63 6b 2e 20 53 65 | 65 20 63 6f 6d 6d 65 6e |tack. Se|e commen|
|00003e20| 74 73 20 61 62 6f 76 65 | 2e 0d 20 2a 2f 0d 20 73 |ts above|.. */. s|
|00003e30| 63 72 6f 6c 6c 5f 64 6f | 77 6e 28 29 0d 20 09 7b |croll_do|wn(). .{|
|00003e40| 0d 23 61 73 6d 0d 3b 0d | 3b 20 49 6e 70 75 74 73 |.#asm.;.|; Inputs|
|00003e50| 3a 0d 3b 09 09 09 34 28 | 73 70 29 09 09 09 50 61 |:.;...4(|sp)...Pa|
|00003e60| 72 74 20 63 6f 64 65 20 | 28 69 6e 74 29 0d 3b 09 |rt code |(int).;.|
|00003e70| 09 09 36 28 73 70 29 09 | 09 09 43 6f 6e 74 72 6f |..6(sp).|..Contro|
|00003e80| 6c 20 68 61 6e 64 6c 65 | 20 28 61 64 64 72 65 73 |l handle| (addres|
|00003e90| 73 29 0d 3b 0d 09 09 4c | 69 6e 6b 09 09 61 36 2c |s).;...L|ink..a6,|
|00003ea0| 23 30 09 09 09 09 3b 20 | 6e 6f 20 6c 6f 63 61 6c |#0....; |no local|
|00003eb0| 20 61 75 74 6f 6d 61 74 | 69 63 73 0d 09 09 4d 6f | automat|ics...Mo|
|00003ec0| 76 65 2e 57 09 38 28 61 | 36 29 2c 64 30 09 09 09 |ve.W.8(a|6),d0...|
|00003ed0| 3b 20 44 30 20 3d 20 70 | 61 72 74 20 63 6f 64 65 |; D0 = p|art code|
|00003ee0| 20 28 57 29 0d 09 09 42 | 65 71 09 09 40 31 09 09 | (W)...B|eq..@1..|
|00003ef0| 09 09 09 3b 20 28 30 20 | 6d 65 61 6e 73 20 6f 75 |...; (0 |means ou|
|00003f00| 74 20 6f 66 20 70 61 72 | 74 20 72 65 67 69 6f 6e |t of par|t region|
|00003f10| 29 0d 09 09 4d 6f 76 65 | 2e 4c 09 31 30 28 61 36 |)...Move|.L.10(a6|
|00003f20| 29 2c 2d 28 73 70 29 09 | 3b 20 50 75 73 68 20 63 |),-(sp).|; Push c|
|00003f30| 6f 6e 74 72 6f 6c 20 68 | 61 6e 64 6c 65 20 28 66 |ontrol h|andle (f|
|00003f40| 6f 72 20 6c 61 74 65 72 | 29 0d 09 09 43 6c 72 2e |or later|)...Clr.|
|00003f50| 57 09 09 2d 28 73 70 29 | 09 09 09 09 3b 20 47 65 |W..-(sp)|....; Ge|
|00003f60| 74 73 20 63 6f 6e 74 72 | 6f 6c 20 76 61 6c 75 65 |ts contr|ol value|
|00003f70| 0d 09 09 4d 6f 76 65 2e | 4c 09 31 30 28 61 36 29 |...Move.|L.10(a6)|
|00003f80| 2c 2d 28 73 70 29 09 3b | 20 50 75 73 68 20 63 6f |,-(sp).;| Push co|
|00003f90| 6e 74 72 6f 6c 20 68 61 | 6e 64 6c 65 0d 09 09 44 |ntrol ha|ndle...D|
|00003fa0| 43 2e 57 09 09 24 41 39 | 36 30 09 09 09 09 3b 20 |C.W..$A9|60....; |
|00003fb0| 5f 47 65 74 43 74 6c 56 | 61 6c 75 65 20 28 76 61 |_GetCtlV|alue (va|
|00003fc0| 6c 75 65 20 6f 6e 20 73 | 74 61 63 6b 29 0d 09 09 |lue on s|tack)...|
|00003fd0| 4a 73 72 09 09 67 65 74 | 5f 6c 68 09 09 09 3b 20 |Jsr..get|_lh...; |
|00003fe0| 44 30 20 3d 20 74 65 78 | 74 20 6c 69 6e 65 20 68 |D0 = tex|t line h|
|00003ff0| 65 69 67 68 74 2c 20 70 | 69 78 65 6c 73 20 28 65 |eight, p|ixels (e|
|00004000| 61 73 69 65 72 20 69 6e | 20 43 29 0d 09 09 41 64 |asier in| C)...Ad|
|00004010| 64 2e 57 09 09 64 30 2c | 28 73 70 29 09 09 09 3b |d.W..d0,|(sp)...;|
|00004020| 20 28 53 50 29 20 3d 20 | 6e 65 77 20 63 6f 6e 74 | (SP) = |new cont|
|00004030| 72 6f 6c 20 76 61 6c 75 | 65 0d 09 09 44 43 2e 57 |rol valu|e...DC.W|
|00004040| 09 09 24 41 39 36 33 09 | 09 09 09 3b 20 5f 53 65 |..$A963.|...; _Se|
|00004050| 74 43 74 6c 56 61 6c 75 | 65 0d 09 09 4a 73 72 09 |tCtlValu|e...Jsr.|
|00004060| 09 65 64 69 74 5f 73 63 | 72 6f 6c 6c 09 09 3b 20 |.edit_sc|roll..; |
|00004070| 63 61 6c 6c 20 43 20 74 | 65 78 74 20 73 63 72 6f |call C t|ext scro|
|00004080| 6c 6c 65 72 0d 40 31 3a | 0d 09 09 55 6e 6c 6b 09 |ller.@1:|...Unlk.|
|00004090| 09 61 36 09 09 09 09 09 | 3b 20 22 73 74 61 6e 64 |.a6.....|; "stand|
|000040a0| 61 72 64 22 20 50 61 73 | 63 61 6c 20 72 6f 75 74 |ard" Pas|cal rout|
|000040b0| 69 6e 65 20 65 78 69 74 | 20 2e 2e 2e 0d 09 09 4d |ine exit| ......M|
|000040c0| 6f 76 65 2e 6c 09 28 73 | 70 29 2b 2c 61 30 0d 09 |ove.l.(s|p)+,a0..|
|000040d0| 09 41 64 64 71 09 09 23 | 36 2c 73 70 0d 09 09 4a |.Addq..#|6,sp...J|
|000040e0| 6d 70 09 09 28 61 30 29 | 0d 23 65 6e 64 61 73 6d |mp..(a0)|.#endasm|
|000040f0| 0d 09 7d 0d 0d 2f 2a 0d | 20 2a 20 45 44 49 54 5f |..}../*.| * EDIT_|
|00004100| 53 43 52 4f 4c 4c 28 29 | 20 2d 20 53 63 72 6f 6c |SCROLL()| - Scrol|
|00004110| 6c 20 65 64 69 74 20 77 | 69 6e 64 6f 77 20 70 65 |l edit w|indow pe|
|00004120| 72 20 63 6f 6e 74 72 6f | 6c 20 76 61 6c 75 65 73 |r contro|l values|
|00004130| 0d 20 2a 0d 20 2a 20 49 | 6e 70 75 74 73 3a 0d 20 |. *. * I|nputs:. |
|00004140| 2a 09 09 43 75 72 72 65 | 6e 74 20 76 61 6c 75 65 |*..Curre|nt value|
|00004150| 20 6f 66 20 74 65 5f 6f | 72 69 67 69 6e 20 69 6e | of te_o|rigin in|
|00004160| 20 74 68 65 20 57 43 42 | 0d 20 2a 09 09 43 75 72 | the WCB|. *..Cur|
|00004170| 72 65 6e 74 20 76 61 6c | 75 65 73 20 6f 66 20 74 |rent val|ues of t|
|00004180| 68 65 20 73 63 72 6f 6c | 6c 65 72 73 0d 20 2a 0d |he scrol|lers. *.|
|00004190| 20 2a 20 4f 75 74 70 75 | 74 73 3a 0d 20 2a 09 09 | * Outpu|ts:. *..|
|000041a0| 4f 72 69 67 69 6e 20 70 | 6f 69 6e 74 73 20 69 6e |Origin p|oints in|
|000041b0| 20 74 68 65 20 57 43 42 | 20 61 72 65 20 75 70 64 | the WCB| are upd|
|000041c0| 61 74 65 64 0d 20 2a 09 | 09 45 6e 66 6f 72 63 65 |ated. *.|.Enforce|
|000041d0| 73 20 61 20 6c 6f 77 20 | 6c 69 6d 69 74 20 6f 66 |s a low |limit of|
|000041e0| 20 30 20 6f 6e 20 74 68 | 65 20 63 6f 6e 74 72 6f | 0 on th|e contro|
|000041f0| 6c 73 0d 20 2a 2f 0d 65 | 64 69 74 5f 73 63 72 6f |ls. */.e|dit_scro|
|00004200| 6c 6c 28 29 0d 09 7b 0d | 09 73 68 6f 72 74 20 69 |ll()..{.|.short i|
|00004210| 6e 74 20 64 68 2c 20 64 | 76 3b 0d 09 0d 09 64 68 |nt dh, d|v;....dh|
|00004220| 20 3d 20 64 77 70 2d 3e | 74 65 5f 6f 72 69 67 69 | = dwp->|te_origi|
|00004230| 6e 2e 68 20 2d 20 28 73 | 68 6f 72 74 20 69 6e 74 |n.h - (s|hort int|
|00004240| 29 23 47 65 74 43 74 6c | 56 61 6c 75 65 28 64 77 |)#GetCtl|Value(dw|
|00004250| 70 2d 3e 68 73 5f 68 61 | 6e 64 6c 65 29 3b 0d 09 |p->hs_ha|ndle);..|
|00004260| 69 66 28 64 68 20 3c 3d | 20 64 77 70 2d 3e 74 65 |if(dh <=| dwp->te|
|00004270| 5f 6f 72 69 67 69 6e 2e | 68 29 0d 09 09 64 77 70 |_origin.|h)...dwp|
|00004280| 2d 3e 74 65 5f 6f 72 69 | 67 69 6e 2e 68 20 2d 3d |->te_ori|gin.h -=|
|00004290| 20 64 68 3b 0d 09 65 6c | 73 65 0d 09 09 64 77 70 | dh;..el|se...dwp|
|000042a0| 2d 3e 74 65 5f 6f 72 69 | 67 69 6e 2e 68 20 3d 20 |->te_ori|gin.h = |
|000042b0| 34 3b 0d 09 0d 09 64 76 | 20 3d 20 64 77 70 2d 3e |4;....dv| = dwp->|
|000042c0| 74 65 5f 6f 72 69 67 69 | 6e 2e 76 20 2d 20 28 73 |te_origi|n.v - (s|
|000042d0| 68 6f 72 74 20 69 6e 74 | 29 23 47 65 74 43 74 6c |hort int|)#GetCtl|
|000042e0| 56 61 6c 75 65 28 64 77 | 70 2d 3e 76 73 5f 68 61 |Value(dw|p->vs_ha|
|000042f0| 6e 64 6c 65 29 3b 0d 09 | 69 66 28 64 76 20 3c 3d |ndle);..|if(dv <=|
|00004300| 20 64 77 70 2d 3e 74 65 | 5f 6f 72 69 67 69 6e 2e | dwp->te|_origin.|
|00004310| 76 29 0d 09 09 64 77 70 | 2d 3e 74 65 5f 6f 72 69 |v)...dwp|->te_ori|
|00004320| 67 69 6e 2e 76 20 2d 3d | 20 64 76 3b 0d 09 65 6c |gin.v -=| dv;..el|
|00004330| 73 65 0d 09 09 64 77 70 | 2d 3e 74 65 5f 6f 72 69 |se...dwp|->te_ori|
|00004340| 67 69 6e 2e 76 20 3d 20 | 34 3b 0d 09 0d 09 23 54 |gin.v = |4;....#T|
|00004350| 45 53 63 72 6f 6c 6c 28 | 64 68 2c 20 64 76 2c 20 |EScroll(|dh, dv, |
|00004360| 64 77 70 2d 3e 74 65 5f | 68 61 6e 64 6c 65 29 3b |dwp->te_|handle);|
|00004370| 0d 09 7d 0d 0d 2f 2a 0d | 20 2a 20 47 45 54 5f 4c |..}../*.| * GET_L|
|00004380| 48 28 29 20 2d 20 52 65 | 74 75 72 6e 20 74 65 78 |H() - Re|turn tex|
|00004390| 74 20 6c 69 6e 65 20 68 | 65 69 67 68 74 20 70 65 |t line h|eight pe|
|000043a0| 72 20 54 65 78 74 45 64 | 69 74 20 72 65 63 6f 72 |r TextEd|it recor|
|000043b0| 64 0d 20 2a 0d 20 2a 20 | 49 6e 70 75 74 73 3a 0d |d. *. * |Inputs:.|
|000043c0| 20 2a 09 09 64 77 70 20 | 2d 2d 3e 20 63 75 72 72 | *..dwp |--> curr|
|000043d0| 65 6e 74 20 57 43 42 0d | 20 2a 0d 20 2a 09 4f 75 |ent WCB.| *. *.Ou|
|000043e0| 74 70 75 74 73 3a 0d 20 | 2a 09 09 72 65 74 75 72 |tputs:. |*..retur|
|000043f0| 6e 73 20 74 65 78 74 20 | 6c 69 6e 65 20 68 65 69 |ns text |line hei|
|00004400| 67 68 74 20 66 6f 72 20 | 73 63 72 6f 6c 6c 69 6e |ght for |scrollin|
|00004410| 67 0d 20 2a 2f 0d 67 65 | 74 5f 6c 68 28 29 0d 09 |g. */.ge|t_lh()..|
|00004420| 7b 0d 09 72 65 74 75 72 | 6e 28 28 2a 28 64 77 70 |{..retur|n((*(dwp|
|00004430| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 29 29 2d 3e 6c |->te_han|dle))->l|
|00004440| 69 6e 65 48 65 69 67 68 | 74 29 3b 20 20 2f 2a 20 |ineHeigh|t); /* |
|00004450| 45 61 73 79 20 69 6e 20 | 43 21 21 21 20 2a 2f 0d |Easy in |C!!! */.|
|00004460| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 47 45 54 5f 57 43 |.}../*. |* GET_WC|
|00004470| 42 28 29 20 2d 20 41 6c | 6c 6f 63 61 74 65 20 61 |B() - Al|locate a|
|00004480| 20 57 43 42 20 66 6f 72 | 20 61 20 6e 65 77 20 77 | WCB for| a new w|
|00004490| 69 6e 64 6f 77 0d 20 2a | 0d 20 2a 20 49 6e 70 75 |indow. *|. * Inpu|
|000044a0| 74 73 3a 0d 20 2a 09 09 | 6e 6f 6e 65 0d 20 2a 0d |ts:. *..|none. *.|
|000044b0| 20 2a 20 4f 75 74 70 75 | 74 73 3a 0d 20 2a 09 09 | * Outpu|ts:. *..|
|000044c0| 52 65 74 75 72 6e 73 20 | 2d 2d 3e 20 61 6c 6c 6f |Returns |--> allo|
|000044d0| 63 61 74 65 64 20 57 43 | 42 20 6f 72 20 4e 55 4c |cated WC|B or NUL|
|000044e0| 4c 20 69 66 20 6e 6f 6e | 65 20 6c 65 66 74 0d 20 |L if non|e left. |
|000044f0| 2a 2f 0d 67 65 74 5f 77 | 63 62 28 29 0d 09 7b 0d |*/.get_w|cb()..{.|
|00004500| 09 69 6e 74 20 69 3b 0d | 09 0d 09 66 6f 72 28 69 |.int i;.|...for(i|
|00004510| 3d 30 3b 20 69 3c 4d 41 | 58 5f 57 49 4e 44 4f 57 |=0; i<MA|X_WINDOW|
|00004520| 53 3b 20 69 2b 2b 29 0d | 09 09 69 66 28 64 77 5b |S; i++).|..if(dw[|
|00004530| 69 5d 2e 77 70 20 3d 3d | 20 4e 55 4c 4c 29 0d 09 |i].wp ==| NULL)..|
|00004540| 09 09 7b 0d 09 09 09 64 | 77 5b 69 5d 2e 74 65 5f |..{....d|w[i].te_|
|00004550| 68 61 6e 64 6c 65 20 3d | 20 4e 55 4c 4c 3b 09 09 |handle =| NULL;..|
|00004560| 09 2f 2f 20 4d 61 72 6b | 20 65 64 69 74 69 6e 67 |.// Mark| editing|
|00004570| 20 6e 6f 74 20 72 65 61 | 64 79 20 74 68 69 73 20 | not rea|dy this |
|00004580| 77 69 6e 64 6f 77 0d 09 | 09 09 72 65 74 75 72 6e |window..|..return|
|00004590| 28 26 64 77 5b 69 5d 29 | 3b 0d 09 09 09 7d 0d 09 |(&dw[i])|;....}..|
|000045a0| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 7d 0d 0d 2f |return(0|);..}../|
|000045b0| 2a 0d 20 2a 20 46 49 4e | 44 5f 57 43 42 28 29 20 |*. * FIN|D_WCB() |
|000045c0| 2d 20 46 69 6e 64 20 77 | 69 6e 64 6f 77 20 63 6f |- Find w|indow co|
|000045d0| 6e 74 72 6f 6c 20 62 6c | 6f 63 6b 20 66 6f 72 20 |ntrol bl|ock for |
|000045e0| 67 69 76 65 6e 20 77 69 | 6e 64 6f 77 0d 20 2a 0d |given wi|ndow. *.|
|000045f0| 20 2a 20 52 65 74 75 72 | 6e 73 20 57 43 42 20 70 | * Retur|ns WCB p|
|00004600| 6f 69 6e 74 65 72 20 6f | 72 20 30 20 69 66 20 67 |ointer o|r 0 if g|
|00004610| 69 76 65 6e 20 77 69 6e | 64 6f 77 20 70 6f 69 6e |iven win|dow poin|
|00004620| 74 65 72 20 64 6f 65 73 | 20 6e 6f 74 0d 20 2a 20 |ter does| not. * |
|00004630| 62 65 6c 6f 6e 67 20 74 | 6f 20 6f 6e 65 20 6f 66 |belong t|o one of|
|00004640| 20 6f 75 72 20 57 43 42 | 27 73 2e 0d 20 2a 2f 0d | our WCB|'s.. */.|
|00004650| 66 69 6e 64 5f 77 63 62 | 28 77 70 29 0d 57 69 6e |find_wcb|(wp).Win|
|00004660| 64 6f 77 50 74 72 20 77 | 70 3b 0d 09 7b 0d 09 69 |dowPtr w|p;..{..i|
|00004670| 6e 74 20 69 3b 0d 09 0d | 09 66 6f 72 28 69 3d 30 |nt i;...|.for(i=0|
|00004680| 3b 20 69 3c 4d 41 58 5f | 57 49 4e 44 4f 57 53 3b |; i<MAX_|WINDOWS;|
|00004690| 20 69 2b 2b 29 0d 09 09 | 69 66 28 64 77 5b 69 5d | i++)...|if(dw[i]|
|000046a0| 2e 77 70 20 3d 3d 20 77 | 70 29 0d 09 09 09 72 65 |.wp == w|p)....re|
|000046b0| 74 75 72 6e 28 26 64 77 | 5b 69 5d 29 3b 0d 09 72 |turn(&dw|[i]);..r|
|000046c0| 65 74 75 72 6e 28 30 29 | 3b 0d 09 7d 0d 00 00 00 |eturn(0)|;..}....|
|000046d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004700| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 d4 |........|........|
|00004710| 38 3a 20 33 30 20 32 45 | 20 46 46 20 45 45 20 0a |8: 30 2E| FF EE .|
|00004720| 0d 30 30 31 44 45 43 3a | 20 45 35 20 34 38 20 0a |.001DEC:| E5 48 .|
|00004730| 0c 44 65 6d 6f 57 69 6e | 64 6f 77 2e 43 6e 02 00 |.DemoWin|dow.Cn..|
|00004740| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 00 |..TEXTED|IT......|
|00004750| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 00 |..TEXTED|IT......|
|00004760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004770| 00 00 97 e4 ae ab 00 00 | 46 4d 00 00 01 ea 20 0a |........|FM.... .|
|00004780| 0d 30 30 31 44 46 43 3a | 20 32 30 20 32 45 20 46 |.001DFC:| 20 2E F|
|00004790| 46 20 46 34 20 0a 0d 30 | 30 31 45 30 30 3a 20 32 |F F4 ..0|01E00: 2|
|000047a0| 32 20 32 45 20 46 46 20 | 46 38 20 0a 0d 30 30 31 |2 2E FF |F8 ..001|
|000047b0| 45 30 34 3a 20 34 45 42 | 41 20 46 39 35 41 20 0a |E04: 4EB|A F95A .|
|000047c0| 0d 30 30 31 45 30 38 3a | 20 34 33 20 45 44 20 46 |.001E08:| 43 ED F|
|000047d0| 45 20 38 32 20 0a 0d 30 | 30 31 45 30 43 3a 20 33 |E 82 ..0|01E0C: 3|
|000047e0| 30 20 32 45 20 46 46 20 | 45 45 20 0a 0d 30 30 31 |0 2E FF |EE ..001|
|000047f0| 45 31 30 3a 20 45 35 20 | 34 38 20 0a 0d 30 30 31 |E10: E5 |48 ..001|
|00004800| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 2e 00 00 |.......M|onaco...|
|00004810| 00 04 00 06 00 03 00 00 | 01 00 00 00 01 16 00 00 |........|........|
|00004820| 00 16 00 00 00 d4 00 00 | 4e 1c 00 98 00 00 00 1c |........|N.......|
|00004830| 00 46 00 01 45 46 4e 54 | 00 00 00 12 45 54 41 42 |.F..EFNT|....ETAB|
|00004840| 00 00 00 1e 03 eb 00 00 | 00 00 00 00 00 00 eb b8 |........|........|
|00004850| 03 ec 00 47 00 00 00 0e | 00 00 eb a8 46 4f 42 4a |...G....|....FOBJ|
|00004860| ff ff ff ff 00 40 01 aa | 00 40 01 ac 00 40 01 ae |.....@..|.@...@..|
|00004870| 00 40 01 b0 00 40 01 b2 | 00 40 01 b4 00 40 01 b6 |.@...@..|.@...@..|
|00004880| 00 40 01 b8 00 40 10 18 | 00 40 01 bc 00 40 01 be |.@...@..|.@...@..|
|00004890| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000048a0| 00 40 01 46 4f 42 4a ff | ff ff ff 00 40 01 aa 00 |.@.FOBJ.|....@...|
|000048b0| 40 01 ac 00 40 01 ae 00 | 40 01 b0 00 40 01 b2 00 |@...@...|@...@...|
|000048c0| 40 01 b4 00 40 01 b6 00 | 40 01 b8 00 40 10 18 00 |@...@...|@...@...|
|000048d0| 40 01 bc 00 40 01 be 00 | 40 01 be 00 40 01 be 00 |@...@...|@...@...|
|000048e0| 40 01 be 00 40 01 be 00 | 40 01 00 00 00 00 00 00 |@...@...|@.......|
|000048f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+